2016-04-26 7 views
5

style-src'self'を設定すると、styleタグまたはstyle属性を使用してインラインスタイルを使用できなくなります。これは意図したとおりに動作します。 JS経由でstyle要素を追加することもブロックされます。Content Security Policyのstyle-src 'self'に違反することなく、JS内でスタイルを設定できますか?

しかし、私はまだHTMLElementstyleオブジェクトのプロパティを設定できることに本当に驚きました。たとえばこれは、CSP違反をトリガしません:

document.getElementById('test').style.backgroundImage = 'url("image.png")'; 

は、これはどのようにそのようなherehereを説明したものなどの攻撃を防ぐのですか?

+1

security.stackexchange.comまたはwebapps.stackexchange.comの方が適切です。 – Barmar

+1

URL「image.pn」は自己と相対的ですが、別のドメインにある絶対URLを試してみるとどうなりますか? – robertjd

+0

@robertjd私はちょうど読んで、実際にはurl()は 'img-src'ルールの対象です。 – ctusch

答えて

1

おそらく既にスクリプトの挿入を許可している場合、スタイルの変更はあなたの心配のなかで最も簡単です。

スタイル要素と属性は、なしで悪意のあるような迷惑行為から保護するためにブロックされ、 JSなし。誰かがプレゼンテーションだけでなくDOM自体を変更している場合は、とにかくそれははるかに深刻です。

2番目のリンクはこれと関連がありません。デモはもはや上がっていませんが、明らかにスタイルシートであるかのように参照ページにリンクし、参照ページに2つの箇所で有効なCSSが植えられていることを利用して、介入するテキストを処理していました画像のURLとしてその攻撃は他の方向からのものであるため、CSPはそこでは関連性がありません。攻撃側のリンクページは意図的に外部スタイルシートの読み込みを許可するように設定されます。 (私は間違っている可能性がありますが、CSPヘッダーはCSSのファイル自体のためのHTTPレスポンスに設定されていないとか、CSSで扱われている他のファイルを外に出さないようにすることはできません)

関連する問題