1

ユーザーが自分のプロファイル (MySpace、Friendster、Blogger など) にカスタム CSS を入力できるアプリケーションを構築しています。

問題は、CSS を介して XSS 攻撃を浄化する方法を見つけるのに苦労していることです。HTMLPurifier を使ってみましたが、うまくいきません。一例:

html {
    expression: alert('xss');
}

body {
    background-color: #FFF;
}

これは、HTMLPurifier によって許可されます。

これを無効にするために HTMLPurifier に使用する必要がある設定はありますか?

ありがとう!

更新
式です: CSS 経由でエクスプロイトをプッシュする唯一の方法ですか? もしそうなら、正規表現は HTMLPurifier を使用するよりも効率的でしょうか?

4

2 に答える 2

2

HTML Purifier は、CSS ではなく、HTML 入力で動作します。そうは言っても、スタイル シートをスタイル タグでラップし、%Filter.ExtractStyleBlocks をオンにすることで、CSS スタイル シートで機能するようにだますことができます。CSS Tidy をインストールする必要があります。

アップデート。いいえ。CSS ペイロードを配信する方法は多数あり、表現を検索するだけでは十分ではありません。

于 2011-06-02T09:41:30.847 に答える
0

$str = preg_replace("/expression[\s:\]+/", '', $str)式文字列を削除します。

私の意見では、このような内容をサイトに入力しようとするユーザーを単純に「禁止」するか、別の方法でマークする方がよいかもしれません。CSS を使用してブラウザーを破壊する他の方法については知りません。@Edward がここで役立つかもしれません:)

于 2011-06-08T13:05:53.820 に答える