特定のページのJavascriptを無効にするHTTPヘッダーはありますか? 私のウェブサイトは、ユーザが生成したHTMLコンテンツを配信します(そのため、私はhtmlenitities
を使うことができません)。スクリプト(JavaScriptインジェクション)を防止したいと思います。特定のページでJavascriptの実行を無効にする(HTML/PHP)
私はすでに、メインドメインでのみ認証用に設定されているHttpOnly-Cookieを使用していますが、ユーザーのコンテンツはCookieを読み取れないサブドメインにのみ表示されます。 JavaScriptを実行するには余りにも多くの可能性が残っているという問題があります。例えば、onclick
などのイベント属性を使用するなど、Internet ExplorerはCSSでJavaScriptの実行を許可するプロパティを持っています(expression
)。私が読んだ別の興味深いアイデアは、コードを次のようにブロックするために例外をスローすることでした。 もう1つの考え方は、すべての許可されたタグを含むリストを定義することです。さらに、許容される各属性名を持つ配列を作成することもできますが、これは非常に難しい作業です。
私はこの問題を抱える唯一の人ではないと思いますので、誰もが可能性を知っていますすべて可能性のある有害なコード - 少なくとも現代のブラウザでは?
X-Scripting: disabled
に類似した単純な架空のヘッダーは、人生をはるかに簡単にするでしょう!
あなたは 'script'タグとユーザー入力の特定の属性をブロックすることを考えたことがありますか? –
それは私が意味することです: "もう一つの考えは、許可されたすべてのタグを含むリストを定義することです。さらに、許容される各属性名を持つ配列を作成することは非常に難しい作業です。 (例えば、私は例えば "div"や "span"のような無害なタグを許可し、 "onclick"、 "onmouseover"のような属性を無効にしますが、ブラウザにはブラウザ固有の属性とプロパティが異なるのですべての注入をカバーしません) –