web-dev-qa-db-ja.com

保存されたWebページを開く:リファラーfile://は送信されますか?

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer

参照リソースがローカルの「ファイル」または「データ」URIの場合、ブラウザはリファラーヘッダーを送信しません。

これは、すべての主要な最新ブラウザー(Safari、Chrome、Firefox、Explorer)に当てはまりますか?

別の言い方をすると、ローカルのハードドライブにWebページを保存し、.htmlファイル、ブラウザがインターネット上のサーバーへの絶対http://パスを使用して画像やスクリプトなどをリクエストしたときに、ローカルハードドライブパスがどこにも送信されないことを100%確信できますか?

(好奇心から答えは「はい」のように思われるため、実際にはどのようにしてブラウザーがこのようなセキュリティ対策を実装しているのでしょうか。1つのブラウザーが最初にそれを実行し、他のブラウザーはそれを実行するので、より低いセキュリティで見られるようにしたいですか?特定のブラウザが最初にこのようなものを最初に表示することがよくありますか?W3Cまたは他の委員会によって決定されますか?)

4
forthrin

あなたの link は、ページ上でそれを正しく言う(私の強調):

以下の場合、Refererヘッダーはブラウザから送信されません

  • 参照するリソースは、ローカルの「ファイル」または「データ」URIです
  • 安全でないHTTPリクエストが使用され、参照ページが安全なプロトコル(HTTPS)で受信されました。

ただし、2番目のポイントに関しては、 referrer-policy 応答ヘッダーがHTTPS -> HTTPに設定されている場合、unsafe-urlから送信される可能性があります。

3
SilverlightFox

まああなたは自分自身を見つけるためにいくつかの研究を行うことができます。 Chromeなどを使用してこれを行いました。chromeデバッグコンソールを使用すると、Chromeからのすべてのリクエストを監視できます。

まず、ローカルハードドライブに保存した実際のWebページでは、chromeは実際にはHTTPリクエストを作成しません。ただし、画像などの追加リソースをロードするには、 CSS、またはJavaScriptバンドルは、HTTP経由でこれらのリソースを要求します。

ローカルに保存されているWebページを閲覧するときと、同じWebページをオンラインで閲覧するときの要求を比較するときに、実際にHTTP要求を実行する要求を確認しました。

このリクエストがローカルWebページから行われた場合、通常はこのリクエストに対してオンラインWebページから送信されますが、リファラーは送信されていないようです。

これに基づいて、あなたは彼らが言うことは本当に本当であると言うことができます。ただし、私は1つのブラウザで1回だけテストしたので、必要なブラウザがないかどうかを確認できます。 :)

これがあなたの質問に答えてくれることを願っています。

0