多くのブラウザでは、JavaScriptを使用してローカルファイルシステム上のファイルにアクセスできません(HTMLドキュメントがローカルファイルシステム上にもある場合でも)。
( ソース )
はい、解決策は「ローカル開発用のHTTPサーバーをインストールして使用する」ことですが、なぜこれが必要なのか理解できません。 Webページにローカルファイルシステムへのアクセスを許可することは明らかに恐ろしいことですが、ローカルファイルシステムからローカルファイルシステムにアクセスするリスクは何ですか。
シェルスクリプトを実行するときはいつでもこれを行っており、シェルスクリプトはcat
の実行を妨げません。ローカルファイルシステムから何かを実行した場合の取得方法(任意の実行可能ファイル、自分でコンパイルした実行可能ファイル、またはHTMLまたはJSドキュメントを含む解釈済みスクリプト!)私は何を知っていると期待しています実行しています。 JSスクリプトがこの前提から除外されたブラウザーで実行されるのはなぜですか?ローカルファイルシステムから不注意にマルウェアを実行する癖がある場合、HTMLドキュメントを開く以外のさまざまな方法で簡単に失敗する可能性があります。
また、CORSはcross-Originリソースの読み込みを禁止するものではありませんか?私の理解では、ローカルファイルシステムリソースからローカルファイルシステムリソースをリクエストすることはほとんどcross-Originではなく、これはまったく同じOriginであるため、なぜCORSが不平を言うのかわかりません。
その上、ローカル開発で何か改善するためにHTTPサーバーを実行する必要がありますか?これを行うには、localhostのポートを不必要に開く必要があります。明らかにこれは、外の世界がローカルサーバーと通信するのを防ぐような方法で実行できます(着信接続を十分に拒否していないのですか?)必要がないのに、なぜリスニングポートを開くのですか?
ここで何を理解できていないのですか?
編集:2番目の考えでは、1つの理由がわかります。ブラウザを使用すると、ユーザーはWebページをローカルに保存できます。インターネットからこの同じWebページをロードすること以上にローカルシステムに損傷を与えない方法でそのようなWebページを開くことができるのは理にかなっています。
ホスト上の既知のイメージの場所を使用してネットワークを攻撃用にマップする攻撃に関する古い記事をここに掲載します(2006年から)。
https://www.cnet.com/news/javascript-opens-doors-to-browser-based-attacks/
当初、JavaScriptは今日よりもはるかに多くのシステムへのアクセスを備えていましたが、時間の経過とともに、許容範囲の広いJavaScriptエージェントを使用することの価値により、エンドポイントへの攻撃が本来よりも可視化されるようになりました。ブラウザーがすべてのファイルを閲覧できるようにすると、飼い猫の動画を見ているだけでも、ブラウザーからマルウェアを起動できるようになります。おっとっと。
システムの進歩に伴い、過去にオープンアクセスの問題が発生したため、JavaScriptは引き続きかなり制限されたアクセスレベルを維持すると思います。 Microsoftで発表された最新のJavaScriptゼロデイが実証したように、JavaScriptライブラリが実行される前に、企業がJavaScriptライブラリを取り去るのは非常に大きな問題です。
さて、あなたは私がJavaScriptにLOTを集中させていることに気付くでしょう、そしてそれはこれが本当に問題であるJavaScriptのためにです。 HTML自体は確かに無害ですが、スクリプトブロックを開くとすぐに、保持する必要があるワームの缶が開かれます。
最後に、ブラウザがこれをサポートしていない理由は、人口の99%が実際に必要な機能ではないためです。ウェブブラウザはウェブサーバーを意図したものではなく、単なるクライアントです。サーバータイプの関数をビルドすると、すべてのブラウザーが実装しようとしているのとは逆の機能であるブラウザーが膨張します(軽量、高速、リソース不足)。
とは言っても、ブラウザーのモデルがますますオープンになっている(MicrosoftはChromeを採用している)と、この機能を実行するモジュールを作成しようとすると思います。さらに、喜んでくれる開発者もいると思います。そのニッチが本当にApache、iis、nginxのインストールを必要としないローカルサーバーを必要とするかどうかを確認する必要があります。
HTMLページのJavaScriptがファイルシステムで開かれたときにコンテンツファイルシステムにアクセスできる場合、そのデータをウェブサーバーに簡単にアップロードできます。その後、攻撃者が実行する必要があるのは、ユーザーをだましてダウンロードされたHTMLドキュメントを開かせるだけで、ユーザーはあなたの個人データを入手できます。
基本的に、他の実行可能ファイルと同様に、HTMLを潜在的に危険なものとして扱う必要があります。これは.js
ファイルはWindowsで実行可能ですが、これは最近Windowsユーザーにとって問題となっています。
実際には少し悪化します。いくつかの主要なソフトウェアベンダーが、いくつかの一般的なXSS脆弱性を持つHTMLファイルにいくつかのヘルプドキュメントを含めていると想像してください。その後、攻撃者はユーザーのブラウザをそのページにリダイレクトするだけでデータを盗むことができます。最近のブラウザーは自動リダイレクトをブロックする可能性がありますが、攻撃者はユーザーをだましてブラウザーのURLを手動で渡させることができます。次に、ブラウザにファイルを入力するだけでも危険です。