簡體   English   中英

反XSS轉義功能的JavaScript實現

[英]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的可憎性),因此兩者均未提供轉義。 您可以簡單地預先編寫代碼或樣式,然后調用適當的函數或設置適當的類。

encodeURIencodeURIComponent可用於編碼URI或其組件。

您可以使用js-xss庫。 對我來說,它可以與我用來將腳本注入HTML的測試用例一起工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM