0
我想在javascript從一個字符串中去除幾乎所有的HTML標籤,只允許一些基本的標籤
(&剝奪他們的屬性),以防止跨站點腳本。安全剝離HTML標籤中的JavaScript與白名單
A lot of people說,不應該用javascript來完成,因爲客戶端可能禁用了javascript,導致過濾器中斷。然而,我的整個項目取決於JavaScript,並且沒有禁用客戶端的JavaScript會看到輸出,再加上我無法做到服務器端。
(1)在這種情況下,我可以安全地進行假設嗎?
bobince建議to use the DOM(而不是RegEx)過濾可能不安全的輸入。我肯定沒有XSS專家,但因爲他的例子依賴於字符串被插入到DOM 過濾器做他的工作之前,我能想象的,因爲類似的東西可能是不安全的:
var unsecureString = '<img src=".." onload="alert(\'bad\')" />';
$('#alice').update(unsecureString);
filterNodes($('#alice'), {p:[],a:['href']}); // see link above
(2)我可以肯定,上述不良事件不會發生?
(3)如果不是:如何避免這樣的問題,但仍然使用DOM?
這個!寫自己的東西是非常有挑戰性的。 –