Mozilla Firefox 4.0は、埋め込まれたJavaスクリプトの解釈を無効にする コンテンツセキュリティポリシー と呼ばれるものをサポートしています。外部Javaスクリプトタグを使用して参照され、ホワイトリストに登録されたドメインにあるものが実行されます。
現在、Mozilla Firefox 4.0のみがサポートしていますが、 W3Cドラフト です。
On-attributesの使用を停止するように既存のWebアプリケーションを書き直すのは大変な作業であるため、問題が発生する価値があるかどうかという疑問が生じます。
他のブラウザがそれをサポートする可能性はありますか?保護を回避する既知の方法はありますか(.jsファイルが静的であると仮定)?
CSPは、HTTP cookieセキュアフラグ、HSTS、およびX-FRAME-OPTIONSとともに、ユーザーのセキュリティを常に向上させるための私のお気に入りのHTTP応答ヘッダーであり続けます。
-- Webアプリケーションでのブラウザセキュリティの有効化 も参照してください。
このメカニズムは、特定の状況でのみ真の価値があると思います。
一般的なケースでは、通常のWebアプリケーションの場合、@ SteveSが書いたように、コードをXSSセーフになるように修正する方がよいでしょう。
ただし、それが容易に不可能なシナリオがいくつかあり、これらのシナリオの人気が高まっています。私は「ユーザー生成コンテンツ」について言及しています。ここでは、ブログ、ソーシャルネットワーキングサイト、CMSなどの任意のHTMLコンテンツを含め、ユーザーが(ほぼ)すべてのデータを入力できるようにする必要があります。
さて、私のセキュリティプロの部分はそこから身をかがめています、そしてすぐに私はジャンプして叫びたいです:「いいえ、あなたは必要はありませんそうして、もっと良い方法を見つけてください!」しかしもちろん、それは実際には重要ではありません...
はい、その状況を回避するための迂回方法があります。ユーザーに任意のHTMLを入力させるか、特定のタグをホワイトリストに登録するか、代替のマークアップシステム(ここで使用される Markdown など)を使用します-これらは一種の厄介なものであり、機能が制限されており、一部のエンドユーザーにとっては些細なことではありません。
結論として、そこにwill任意のHTMLを受け入れるいくつかのWebアプリがあります。理由は何であれ、ビジネスは必要と見なします。それがどれほど安全でないかについて叫ぶのは逆効果であり、それはうまくいかないでしょう。
これらの場合、コンテンツセキュリティポリシーcan大きな価値を追加し、XSS機能を大幅に軽減します。
理論的にはそれは素晴らしいアイデアですが、もっと重要な質問は、これは何を解決するのかということだと思います。 XSSを防ぐための作業が楽になることがわかりますが、JavaScriptを動的に生成する必要があるため、ページ自体を攻撃する代わりに、.jsファイルを攻撃するだけです。しかし、あなたは静的な.jsファイルを言いました...
私の推測では、それはその価値よりも厄介です。何かをブラウザに頼るよりも、XSSセーフになるようにコードを書き直すほうがよいでしょう。