Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can servers block curl requests?

Tags:

php

curl

zoho

I am working on ZOHO API and trying to update the record using cURL. I tried different cURL variations, but it always returns "false". But when I call the same URL using a browser, it works.

Is there any way they can block cURL requests? Is there any other way I can call that URL using a POST or maybe a GET request?

The cURL code I have tried is as below:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
like image 830
www.amitpatil.me Avatar asked Feb 22 '12 08:02

www.amitpatil.me


People also ask

Why cURL is blocked?

CURL call is blocked due to suspected security breach - Server Fault. Stack Overflow for Teams – Start collaborating and sharing organizational knowledge.

Are cURL requests secure?

curl does HTTPS securely by default. Just make sure you DO NOT disable certificate verification with CURLOPT_SSL_VERIFYPEER or CURLOPT_SSL_VERIFYHOST .

Can I do a cURL request to the same server?

We cannot use include because the files that we are calling usually call different databases or have functions with the same name.

What kinds of requests can you send to a server using cURL?

curl is a a command line tool that allows to transfer data across the network. It supports lots of protocols out of the box, including HTTP, HTTPS, FTP, FTPS, SFTP, IMAP, SMTP, POP3, and many more. When it comes to debugging network requests, curl is one of the best tools you can find.


1 Answers

Many web servers want to block HTTP requests forged by something else than a browser, to prevent bots abuses. If you want to simulate/pretend your request from a browser, you at least have to:

  1. Pass the exact same headers than your browsers (use ie Firebug to get them)

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    
  2. Change the user agent (name of the browser)

    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    
  3. Enable cookies (for eg redirection and session handling)

    curl_setopt ($ch, CURLOPT_COOKIEJAR, $file);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    
  4. Add referers

    curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
    curl_setopt($curl, CURLOPT_AUTOREFERER, true);
    

And pray you haven't missed anything!

like image 200
Tom Desp Avatar answered Sep 19 '22 02:09

Tom Desp