私が最初にディスク上のシンプルローカルのhtmlファイルとしての私のアプリケーションのマニュアルを作成したい良くChromeとFirefoxの間のクロスオリジンの取り扱いの違いを理解しようと
背景。この目的のドキュメントを提供するには、次のように整理されると考えられていた。
doc
├── index.html
└── resources
├── includes
│ ├── part1.html
│ ├── part2.html
│ └── part3.html
└── scripts
├── makedoc.js
└── jquery-3.1.1.min.js
だからドキュメントがindex.html
(または私のアプリケーションでopen
コマンドの平均経由)をクリックすると、デフォルトのWebブラウザで簡単に開くことができます。そしてindex.html
はちょうど壊すアップマニュアルを参照してより小さなpartxx.html
バラバラに支援するための容器として考えられていた:ちょうどなど、実際のコンテンツ+自動ナンバリングセクションでdiv
を交換するreplaceBodyParts
とjQuery
を使用して
<!DOCTYPE html>
<html>
<head>
<script src="./resources/scripts/makedoc.js"></script>
<script src="./resources/scripts/jquery-3.1.1.min.js"></script>
<script>$(document).ready(function() { replaceBodyParts(); }</script>
</head>
<body>
<div replaceWith="./resources/includes/part1.html"></div>
<div replaceWith="./resources/includes/part1.html"></div>
<div replaceWith="./resources/includes/part3.html"></div>
</body>
.. 。
問題
Firefでドキュメントを開きます牛(バージョン49.0.2)、問題はありません、素晴らしいです! (M version54.0.2840.71)Chromeでドキュメントを開くと...、私は次のエラーを取得する:
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource
質問
このについてother threadsを読んだ後、私ははっきりとアクセスに関するセキュリティ上の懸念を理解します外部ドメインのローカルファイルシステム。それはクロム(でも最近のリリース)にFirefoxで動作していない、なぜ私の質問は、より多くのです:
- これはFirefoxが
index.html
が局部的に開かれていることを理解することは、より巧妙であることを意味しない、何のクロスオリジンの問題が存在しませんか? - これは、FirefoxがChromeよりも安全性が低いことを意味しますか?
NB:ローカルWebサーバーのインスタンス化やクロム設定の変更などのソリューションには興味がありません。これは、ユーザーが簡単に開くことができるローカルドキュメントです(たとえそれを読むためにChromeを使用するのではなく、firefoxを使用するようにしても、小さなドキュメントでも分割するというアイデアを放棄しなくてはなりません)。
これは、最初のURLが 'file:// c:/.../ doc/index.html'であることを検出することで、ここでfirefoxが特別な' cross-origin'バイパスを行っていないことを意味します。サーバーのfirefoxにマウントされていても、私のローカルファイルシステムでリクエストを得ることができます。 – CitizenInsane
@CitizenInsane - 何ですか?いいえ。あなたの質問は「FirefoxとChromeのルールが異なるのはなぜですか? 「FirefoxとChromeのルールの違いは何ですか?」 – Quentin
あなたの答えの明確化のために、Firefoxはすべてがローカルである場合にのみこれを許可してくれてありがとうございました...この場合、これは悪用される可能性のあるセキュリティ上の問題である可能性のある状況を見ることはできませんが、ブランケット禁止をするだけで、他の状況で間違っている可能性のあるバイパスを避けるほうが良いでしょう。 – CitizenInsane