5

Chrome拡張機能のドキュメント「コンテンツセキュリティポリシー(CSP)」を読んでいます。それは言う:

インラインJavaScript、およびevalのような危険な文字列からJavaScriptへのメソッドは実行されません。この制限により、インラインブロックとインラインイベントハンドラーの両方が禁止されます(例<button onclick="...">)。

..。

インラインJavaScriptの実行に対する制限を緩和するメカニズムはありません。特に、unsafe-inlineを含むスクリプトポリシーを設定しても効果はありません。これは意図的なものです。

インライン<script>ブロックが安全でないのはなぜですか?誰かがそれを説明できますか?例を挙げていただければ幸いです。

ありがとうございました。

4

1 に答える 1

8

ページが言うように:

最初の制限は、悪意のあるサードパーティによって提供されたスクリプトを誤って実行することを不可能にすることで、クロスサイト スクリプティング攻撃の大規模なクラスを一掃します。

基本的に、ロードするスクリプトはすべて、拡張機能からローカルにアクセスできる別のファイルにある必要があります。これにより、ページに挿入されたサードパーティのスクリプトをロードしたり、次のように含めたりすることができなくなります。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

この例は、ユーザーが入力できるフォームがある場合です。ユーザーは、JS を含むスクリプト タグを入力できます。ディスカッション フォーラムのようなものだとしましょう。入ってトピックを作成しますが、その中にいくつかの隠しJSが含まれています。また、投稿する前にそれをきれいにしないと仮定しましょう。これで、私の投稿には、誰かが閲覧するたびに実行される JS が含まれています。これにより、そのスクリプトが実行されなくなります。

于 2012-08-11T16:04:30.607 に答える