我正在嘗試接受HTML輸入的textarea字數。來自HTML的JQuery字數和剝離標籤
我的第一步是從輸入中去除標籤。我發現這個代碼another question:
$("<div></div>").html(html).text();
偉大的工程,但在html易受腳本標籤:
html = "<script>alert()";
我試圖通過使用來緩解這樣的:
$("<p>").html(html).remove('script').text();
哪個成功處理了上面的例子。不幸的是,它不處理:
html = "<script><script>alert();</script>";
因爲它只刪除外部腳本。
我正在嘗試編寫一個while循環來不斷刪除腳本,直到沒有剩下要刪除,但我正在努力與邏輯。
我想是這樣的:
var $div = $("<div></div>").html(html);
while(*remove script causes a change*){
$div = $div.remove('script');
}
text = $div.text();
這可能嗎?這安全嗎?
有沒有辦法在其他元素中處理onXXX=""
屬性呢?
「這安全嗎?」滾動你自己的HTML消毒?一點都不。使用經過徹底測試的白名單。你完全錯過了''這樣的東西。 – zzzzBov
@zzzzBov謝謝,是的,我加了這個問題..任何想法,我會找到這樣的白名單? – Arth
這是一個無關緊要的問題。使用谷歌。 – zzzzBov