web-dev-qa-db-ja.com

cURL-CloudFlareで保護されたサイトを読み込む

CURLを使用してロードしたいサイトがあります。しかし、私が話しているサイトはcloudflare保護を使用しています。 cURLリクエスト中=>「ブラウザをチェックしています。5秒後にリダイレクトされます」と表示され、保護テストに合格しなかったため、存在しないページにリダイレクトされます。

私は長い間自分の答えを探していましたが、役立つリンクが2つしか見つかりませんでした。

リンク1

リンク2

しかし、それでもまだわかりません。私に何か助けはありますか?

13
Marcin

それはCloudFlareのI's Under Attack Modeです-> http://blog.cloudflare.com/introducing-im-under-attack-mode

サイトの所有者である場合は、自分のIPアドレスをホワイトリストに登録する必要があります。あなたがサイトの訪問者なら

1.)ウェブサイトの所有者が自分のウェブサイトでこの機能を有効にしている場合、それは意図的なものであり、ウェブサイトを保護しているため、またはそれを回避する方法はありません。

2.)サイトを頻繁にロードしていて、CloudFlareのDDOS保護をトリガーしている。

pS免責事項:私はCloudFlareで働いています。

17
xxdesmus

主要なブラウザの開発者ツールの下にあるネットワークセクションで[cUrlとしてコピー]を選択すると、攻撃中モードを回避できます。

これにより、必要なすべてのCookieがコピーされるため、カールを「認証」できます。これらのクッキーがどれくらい続くかは、クラウドフレア次第だと思います。

サイドノート:curlは、サイトをロードしたときと同じIPで実行する必要があります。また、実際のテスト/開発環境については、 Selenium および/または phantomjs を推奨します。これらは、Webサイトテスト用の優れたスクリプト言語です。

curl 'https://ilikeurls.net/ourpage.php?do=command' \
    -H 'Host: ilikeurls.net' \
    -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0' \
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
    -H 'Accept-Language: en-US,en;q=0.5' \
    -H 'Referer: https://ilikeurls.net/outpage.php' \                                                    
    -H 'Cookie: all required cookies will appear here' \
    -H 'Connection: keep-alive'\
    --compressed

これらのテストをスクリプト化するためにSeleniumまたはphantomjsを使用する方がよい場合もあります。

15
ticoombs