我正在構建一個允許用戶爲自己的配置文件輸入自定義CSS的應用程序(有點像MySpace,Friendster或Blogger)。您使用什麼樣的HTMLPurifier設置來淨化CSS?
問題是我很難找到通過CSS來淨化XSS攻擊的方法。我嘗試過使用HTMLPurifier,但它不起作用。例如:
html {
expression: alert('xss');
}
body {
background-color: #FFF;
}
這將被HTMLPurifier允許。
我需要使用HTMLPurifier使其失效嗎?
謝謝!
更新
是表達:推動通過CSS的攻擊的唯一途徑?如果是這樣,正則表達式比使用HTMLPurifier更有效嗎?
爲什麼允許使用「表達」的第一位? – Quamis 2011-06-02 08:25:01
由於用戶將自己輸入CSS,我不能保證他們不會使用它。 「表達式:」是通過CSS運行漏洞的唯一方式嗎?如果是這樣,那麼正則表達式會更有效率的正確嗎? – Nikko 2011-06-08 09:13:07
此答案顯示如何配置HTMLPurifier和CSSTidy來消毒CSS:http://stackoverflow.com/questions/3241616/sanitize-user-defined-css-in-php – Synchro 2012-12-19 15:40:03