【问题标题】:How to pass security cloudflare server with php curl如何使用 php curl 传递安全 cloudflare 服务器
【发布时间】:2021-11-10 20:19:52
【问题描述】:

我使用 curl 从 biorxiv 站点获取数据。 这不是非法工作。

$curl = curl_init();

    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',         
    ));

我使用了这段代码,这在我的邮递员中运行良好,但在服务器上却无法运行。 我现在看到这条错误消息。

enter image description here

我该如何解决这个问题?

谢谢!

【问题讨论】:

标签: php codeigniter captcha cloudflare php-curl


【解决方案1】:

嗯,你遇到的是一个机器人检测系统。 Cloudflare 使用它来防止非人类的 DDoS 攻击。在这种情况下,这意味着您将无法以这种方式使用 curl,因为这些检查专门尝试使用非常完整的浏览器。您可以通过从浏览器复制 cookie 来暂时绕过它,因为这些会定期刷新,所以不会持续很长时间。

顺便说一句,Postman 工作是因为它在 Chrome 上运行,因此不太可能触发机器人检测。

【讨论】:

    【解决方案2】:

    以下是 CloudFlare 背后的 URL 示例:https://www.lendingtree.com/forms/mortgage/pecan/refi_hdl2b_ltv

    在 Chrome 隐身窗口中运行良好。当我将请求复制为 cURL 时,从同一台机器的命令窗口卷曲它,我得到 403。卷曲请求:

    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
    

    什么给了?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多