カールとwgetによって403が禁止されるのはなぜですか?

カールとwgetによって403が禁止されるのはなぜですか?

wgetファイルを使用してダウンロードしようとしましたが、curl403エラー(禁止)が原因で拒否されました。

同じコンピュータでWebブラウザを使用してファイルを表示できます。

以下で取得したブラウザのユーザーエージェントを使用して再試行しました。http://www.whatsmyuseragent.com。私はこうする:

wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...

そして

curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...

しかし、まだ禁止されています。 403には何らかの理由があるかもしれませwgetcurl

(これはファイルを取得できるというわけではありません。ブラウザでファイルを保存できることを知っています。コマンドラインツールが異なる動作をする理由を理解することです。)

修正する

この質問に対する素晴らしい答えに感謝します。私が経験している具体的な問題は、サーバーがリファラーを確認していることです。これをコマンドラインに追加すると、curlファイルを使用して取得できますwget

リファラーを検証するサーバーは、302 でまったく確認を行わない別の場所に移動するため、サイトの一部またはcurl一部がwget正常に動作します。

誰かが興味があれば、私が読んでいるからです。これページにアクセスして埋め込みCSSについて学び、サイトのCSSの例を見てください。問題のある実際のURLは次のとおりです。これ私がcurl結局やったことは

curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css

wgetは

 wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css

興味深い。

ベストアンサー1

HTTP 要求には、カールまたは wget に設定されていないヘッダーをさらに含めることができます。たとえば、

  • クッキー:要求が拒否される最大の理由です。ダウンロードサイトでこれが起こっているのを見たことがあります。クッキーが与えられたら(または)オプションを使用して設定key=valできます。-b key=val--cookie key=valcurl
  • リファラー(sic):Webページのリンクをクリックすると、ほとんどのブラウザは現在のページをリファラーに送信する傾向があります。依存してはいけませんが、このヘッダーがなければ、eBayでもパスワードをリセットできません。はい、これが起こるかもしれません。curlこれのオプションはと-e URLです--referer URL
  • 認証:このアプローチは、ユーザー名/パスワードダイアログボックスの制御不能なユーザーインターフェイスのため、今日ではあまり人気がありませんが、まだ可能です。 (または)オプションをcurl使用して設定できます。-u user:password--user user:password
  • ユーザーエージェント:一部の要求は、ユーザーエージェントによって異なる応答を生成します。これは、良い方法(ミラーリストの代わりに実際のダウンロードを提供する)として使用することも、悪い方法(で始まらない、Mozillaまたは含むWgetユーザーエージェントを拒否curl)として使用することもできます。

通常、ブラウザの開発者ツール(FirefoxとChromeでサポート)を使用して、ブラウザから送信されたヘッダーを読むことができます。接続が暗号化されていない場合(つまり、HTTPSを使用していない場合)、この目的のためにパケットスニファ(たとえばWireshark)を使用することもできます。

これらのヘッダーに加えて、Webサイトは状態を変更するいくつかの非ハインドストーリー操作をトリガーすることもできます。たとえば、ページが開いたら、バックグラウンドでダウンロードリンクを準備するよう要求することができます。または、ページでリダイレクトが発生します。これらのタスクは通常Javascriptを使用しますが、これらのタスクを容易にする隠しフレームワークがあるかもしれません。

ダウンロードサイトからファイルを入手する簡単な方法を探している場合は、以下を含むplowdownを確認してください。すき

おすすめ記事