2015-12-10 42 views
0

OWASP XSS (Cross Site Scripting) Prevention Cheat Sheet列出了通過適當轉義數據來防止XSS攻擊的規則,它包含指向Java語言中這些轉義方法的參考實現的鏈接(HTML轉義,屬性轉義,JavScript轉義,CSS轉義,URL轉義)。使用Javascript實現反XSS轉義功能

在Javascript中是否有這些實現,或者我必須'滾動我自己'?

更新:我的意思是Javascript在瀏覽器中運行。例如,對於使用jQuery html()方法呈現的文本轉義(儘管當然text()更安全),或轉義使用EJS等模板引擎呈現的數據。

UPDATE2:ESAPI JavaScript似乎正是我一直在尋找,但它仍然只是「阿爾法質量」

+0

JavaScript ...運行在哪裏?您可以使用的庫取決於您的環境(並且瀏覽器與nodejs非常不同,這與經典ASP非常不同,與etc等非常不同等)等。 – Quentin

+0

對不起,不清楚。我的意思是Javascript在瀏覽器中運行。例如,對於使用jQuery html()方法呈現的文本轉義(儘管當然text()更安全),或轉義使用EJS等模板引擎呈現的數據。 – GStephens

回答

2

因爲你會在(客戶端)的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或其組件。