-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
53 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,42 @@ | ||
--- | ||
title: "Reason: CORS request not HTTP" | ||
slug: Web/HTTP/CORS/Errors/CORSRequestNotHttp | ||
l10n: | ||
sourceCommit: ef46a4ac6bfec3e33c9209244e7cb1a9206165d6 | ||
--- | ||
|
||
{{HTTPSidebar}} | ||
|
||
## 理由 | ||
|
||
``` | ||
```plain | ||
Reason: CORS request not HTTP | ||
``` | ||
|
||
## 何が悪いのか | ||
## エラーの原因 | ||
|
||
{{Glossary("CORS")}} リクエストは URL スキームが HTTPS の場合のみ利用できますが、リクエストで指定された URL が異なる種類のものです。 | ||
これは、ローカルファイルを指定する URL が、 `file:///` スキームを使用している場合によく起こります。 | ||
|
||
この問題を修正するには、CORS が関わるリクエスト、例えば {{domxref("Window/fetch", "fetch()")}}、{{domxref("XMLHttpRequest")}}、ウェブフォント (`@font-face`)、[WebGL textures](/ja/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL)、XSL スタイルシートなどを発行させるには、必ず HTTPS の URL を使用してください。 | ||
|
||
{{Glossary("CORS")}} リクエストは URL スキームが HTTPS の場合のみ利用できますが、リクエストで指定された URL が異なる種類のものです。これは、ローカルファイルを指定する URL が、 `file:///` の URL を使用している場合によく起こります。 | ||
### ローカルファイルの読み込み | ||
|
||
この問題を修正するには、単純に CORS に関するリクエストを発行する際に HTTPS の URL を使用するようにしてください。 | ||
同じディレクトリーおよびサブディレクトリーにあるローカルファイルは、以前は[同一オリジン](/ja/docs/Web/Security/Same-origin_policy)から取得されたものとして扱われていました。 | ||
つまり、テスト中にファイルとそのリソースすべてを、CORS エラーが発生することなく、ローカルディレクトリ-またはサブディレクトリ-から読み込むことができたということです。 | ||
|
||
### Firefox 68 におけるローカルファイルセキュリティ | ||
残念ながら、この問題にはセキュリティ上の問題があり、勧告([CVE-2019-11730](https://www.mozilla.org/en-US/security/advisories/mfsa2019-21/#CVE-2019-11730))で指摘されています。 | ||
Firefox や Chrome を含む多くのブラウザーは現在、(既定では)すべてのローカルファイルを不透明なオリジンとして扱います。 | ||
その結果、ローカルリソースが含まれたローカルファイルを読み込むと、CORS エラーが発生します。 | ||
|
||
Firefox 67 以前ではユーザが `file:///` URI を用いてページを開いたとき、ページのオリジンはその開かれたページのあるディレクトリとして定義されていました。同じディレクトリやそのサブディレクトリにあるリソースは、CORS 同一オリジンルールを適用する際には同一オリジンとみなされていました。 | ||
テストをローカルで実行する必要がある開発者は、[ローカルサーバーを構築する](/ja/docs/Learn/Common_questions/Tools_and_setup/set_up_a_local_testing_server)必要がでてきました。 | ||
すべてのファイルが同じスキームとドメイン (`localhost`) から提供されるため、すべて同じオリジンを持ち、オリジン間エラーは発生しません。 | ||
|
||
Firefox 68 以降では [CVE-2019-11730](https://www.mozilla.org/en-US/security/advisories/mfsa2019-21/#CVE-2019-11730) の対策として、 `file:///` URI を用いて開かれたページのオリジンは、それだけのものとして定義されます。つまり、同じディレクトリやそのサブディレクトリにあるリソースは、CORS 同一オリジンルールを満たさなくなりました。この新たな振る舞いは、`privacy.file_unique_origin` 設定を用いてデフォルトで有効になっています。 | ||
> [!NOTE] | ||
> この変更は、[URL 仕様](https://url.spec.whatwg.org/#origin)と一致しており、ファイルのオリジンの動作は実装に委ねられますが、疑わしい場合はファイルのオリジンは不透明として扱うことが推奨されています。 | ||
## 関連情報 | ||
|
||
- [CORS のエラー](/ja/docs/Web/HTTP/CORS/Errors) | ||
- 用語集: {{Glossary("CORS")}} | ||
- [CORS 入門](/ja/docs/Web/HTTP/CORS) | ||
- [URL とは](/ja/docs/Learn/Common_questions/What_is_a_URL) | ||
- [URL とは](/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL) |