HTML:刪除html注入?
<textarea id="insTxt"></textarea>
<h1 id="getTxt">...</h1>
<button id="getBtn" onclick="getText()">Click Me</button>
JS:
function getText() {
document.getElementById('getTxt').innerHTML = document.getElementById('insTxt').value;
}
在上面的代碼中,我可以在文本區域中輸入的HTML代碼和他們將在實際代碼使用。例如,如果我在textarea中輸入<button>BLAHBLAH</button>
並單擊「Click Me」按鈕,它會添加「BLAHBLAH」按鈕。
這將如何防止?
'innerHTML'將字符串解析爲HTML,'textContent'(你可能想要的)不是。 – Frxstrem
這被稱爲XSS(跨站點腳本)。看看這個鏈接的解決方案。 https://www.owasp.org/index.php/Top_10_2013-A3-Cross-Site_Scripting_(XSS) –
請務必記住,所有這些都發生在**客戶端**上。客戶可以隨時輕鬆更改JS和HTML。但是,如果您計劃將這些數據發送到服務器,那麼數據應該被正確地清理。 – nico