![](/img/trans.png)
[英]JSON.parse escaping for anti-XSS and any character insertion into html, attributes, and values from WebSockets
[英]Javascript implementation of anti-XSS escaping functions
OWASP XSS(跨站點腳本)預防速查表列出了通過適當地轉義數據來防止XSS攻擊的規則,並且包含指向這些轉義方法的參考實現的鏈接,這些引用均以Java語言(HTML Escape,Attribute Escape,Javsacript Escape,CSS Escape,網址轉義)。
在Javascript中是否有這些實現的任何實現,還是我必須“自己動手”?
更新:我的意思是Javascript在瀏覽器中運行。 例如,用於轉義使用jQuery html()方法呈現的文本(盡管text()當然更安全),或轉義使用模板引擎(例如EJS)呈現的數據。
UPDATE2: ESAPI JavaScript似乎是我一直在尋找的東西,盡管它仍然只是“ Alpha質量”
由於您傾向於在(客戶端)JavaScript中使用DOM,因此不需要HTML和HTML屬性轉義。 例如,給定不受信任的輸入input
,
var el = document.createElement('div');
el.setAttribute('title', input);
el.appendChild(document.createTextNode(input));
是絕對安全的,因為您一開始就不會構造(序列化)HTML。
如果您正在從JavaScript代碼編寫自定義JavaScript或CSS,那么您所做的事情就不正確(包括使用document.write
或某些數據URI腳本src的可憎性),因此兩者均未提供轉義。 您可以簡單地預先編寫代碼或樣式,然后調用適當的函數或設置適當的類。
encodeURI
和encodeURIComponent
可用於編碼URI或其組件。
您可以使用js-xss庫。 對我來說,它可以與我用來將腳本注入HTML的測試用例一起工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.