1. ホーム
  2. javascript

[解決済み] 要素内で<script>を実行しないようにブラウザに依頼できますか?

2023-05-30 20:34:03

質問

HTML 文書の特定の部分から JavaScript を実行しないように、ブラウザに指示することは可能ですか?

のように。

<div script="false"> ...

追加のセキュリティ機能として有用かもしれません。私が欲しいスクリプトはすべて、ドキュメントの特定の部分に読み込まれています。ドキュメントの他の部分にはスクリプトがあってはいけませんし、もしあったとしても実行されるべきではありません。

どのように解決するのですか?

はい、できます :-) 答えは コンテンツセキュリティポリシー (CSP)を参照してください。

ほとんどのモダンブラウザはこのフラグをサポートしています これは、信頼できる外部ファイルから JavaScript のコードを読み込み、内部の JavaScript コードをすべて無効にするよう、ブラウザに指示します! 唯一の欠点は、ページ全体でインライン JavaScript を使用することができないことです (単一の <div> ). 異なるセキュリティ ポリシーを持つ外部ファイルから div を動的にインクルードすることで回避できるかもしれませんが、それについてはよくわかりません。

しかし、すべての JavaScript を外部の JavaScript ファイルから読み込むようにサイトを変更できれば、このヘッダーでインライン JavaScript を完全に無効にすることができます!

ここに、例を含む素晴らしいチュートリアルがあります。 HTML5Rocks チュートリアル

この HTTP-Header フラグを送信するようにサーバーを設定できれば、世界はより良い場所になるはずです!