codeigniter 如何通过安全cloudflare服务器与php curl

ilmyapht  于 2022-12-06  发布在  PHP
关注(0)|答案(4)|浏览(202)

我用curl从biorxiv网站获取数据。这不是非法工作。
在初始化过程中,将调用一个新函数。

curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://www.biorxiv.org/search/electron+microscopy+jcode%3Abiorxiv+limit_from%3A2021-11-08+limit_to%3A2021-11-10+numresults%3A75+sort%3Arelevance-rank+format_result%3Astandard,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'GET',         
    ));

我用了这段代码,这在我的 Postman 中运行得很好,但在服务器上不起作用。我现在看到了这个错误的消息。
enter image description here
如何解决此问题?
谢谢你,谢谢你

eit6fx6z

eit6fx6z1#

好吧,你遇到的是一个僵尸检测系统。Cloudflare使用它来防止非人类的DDoS攻击。在这种情况下,这意味着你将不能使用curl的这种方式,因为这些检查专门试图非常全面的工作浏览器。你可以暂时绕过它从您的浏览器复制cookie,这不会持续很长时间,因为这些会定期刷新。
顺便说一句,Postman是在Chrome上运行的,因此不太可能触发bot检测。

kg7wmglp

kg7wmglp2#

以下是CloudFlare背后的URL示例:https://www.lendingtree.com/forms/mortgage/pecan/refi_hdl2b_ltv
在Chrome的incognito窗口中运行良好。当我将请求复制为cURL,从同一台机器的命令窗口中将其 curl 时,我得到403。 curl 请求:

curl 'https://www.lendingtree.com/forms/mortgage/pecan/refi_hdl2b_ltv' \
  -H 'authority: www.lendingtree.com' \
  -H 'sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "macOS"' \
  -H 'dnt: 1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-user: ?1' \
  -H 'sec-fetch-dest: document' \
  -H 'accept-language: en-US,en;q=0.9' \
  --compressed

怎么回事?

8mmmxcuj

8mmmxcuj3#

Cloudflare使用TLS指纹识别来筛选不需要的流量。

yftpprvb

yftpprvb4#

Cloudflare对您的请求(TCP/TLS/HTTP)进行指纹识别,并阻止任何它认为不寻常的内容。
同样值得注意的是,Cloudflare等平台中的bot检测正在不断改进,因此无论您今天找到什么解决方案,它都有可能在某个时候随机停止工作。
如果你真的没有做什么奇怪的事情,那么我建议你看看像watirnerodia这样的东西。如果需要的话,你可以在无头模式下运行它们,它们使用你选择的任何浏览器的完整版本。

相关问题