即使像Twitter這樣的着名網站也受到XSS漏洞的困擾,我們應該如何防止這種攻擊?防止XSS漏洞的措施(如前幾天的推特)
6
A
回答
8
#1你可以做的事情是將你的cookies設置爲HTTP Only ...至少可以防止會話cookie被劫持。就像有人在您自己的網站管理員身上竊取您的Cookie一樣。
其餘的是驗證所有的用戶輸入。
- 規則#0 - 切勿將不受信任的數據除了在允許的位置
- 規則#1 - HTML逃生插入不可信數據到HTML元素內容
- 規則#2之前 - 屬性逃生插入不可信數據轉換成HTML之前通用屬性
- 規則#3 - JavaScript的逃生之前插入不可信數據到HTML的JavaScript數據值
- 規則#4 - CSS逃逸插入不可信數據轉換成HTML風格屬性值之前
- 規則#5 - URL逃逸插入不可信數據轉換成HTML URL屬性之前在這裏詳細
非常漫長的主題討論:
http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
http://www.owasp.org/index.php/Cross_site_scripting
XSS只是衆多漏洞之一併且每個web開發者都應該學會imho的前10名OWASP
0
我不會寫你的代碼,但是如果你使用asp.net,你會被部分覆蓋。 asp.net具有他們稱之爲請求驗證的功能,當它啓用時,它可以防止通過用戶輸入引入惡意腳本。
但有時候,您必須允許某種文本編輯器,例如您在此問題中鍵入的文本編輯器。在這種情況下,您必須部分禁用請求驗證,以允許最終用戶輸入一些「富文本」html。在這種情況下,你將不得不建立某種白名單過濾機制。
僅供參考,我不知道其他人,但Microsft有一個名爲Anti-Xss的庫。
2
就像你可以通過使用預處理語句使SQL注入不成問題一樣,你可以通過使用模板引擎(DOM序列化程序)來做出類似的事情,從而使XSS不成問題。
設計您的應用程序,使所有輸出通過模板引擎。默認情況下,使模板引擎HTML轉義所有數據。通過這種方式,您將擁有默認安全的系統,並且不依賴人類(以及大型系統的其他部分)努力逃避HTML。
相關問題
- 1. 防止XSS漏洞
- 2. 如何使用Struts防止XSS漏洞
- 3. 如何防止wordpress站點中的XSS漏洞
- 4. 如何防止JavaScript中的客戶端DOM XSS漏洞?
- 5. GWT干擾XSS預防措施
- 6. XSS漏洞
- 7. XSS漏洞
- 8. 防止ckeditor中的漏洞?
- 9. Struts2的Freemarker的XSS漏洞
- 10. XSS漏洞在JavaScript
- 11. XSS中的常見漏洞?
- 12. 如何防止Meteor.user()的計時漏洞?
- 13. 防止屏幕燒傷的措施
- 14. 如何解決JavaScript上的XSS漏洞?
- 15. XSS漏洞:<wslite>
- 16. JavaScript framekiller和XSS漏洞
- 17. XSS持久性漏洞
- 18. 今天的Twitter上的XSS onmouseover漏洞利用
- 19. 網站已死。 「需要採取措施:Rails安全漏洞」
- 20. 最好的圖書館/做法,以防止OWASP前10漏洞
- 21. PHP腳本中的XSS漏洞
- 22. 發生XSS漏洞,該如何解決?
- 23. 如何利用HTTP頭XSS漏洞?
- 24. 防止格式化字符串漏洞
- 25. 防止後退按鈕漏洞? PHP
- 26. PHP防止xss
- 27. 防止DOM XSS
- 28. 避免XSS漏洞 - 白名單?
- 29. Fuseki 2和Cross Site Scripting(XSS)漏洞
- 30. XSS漏洞腳本標記編碼
不幸的是,MS lib只有這麼/那麼...但是好得多。以下是最新(測試版)http://www.microsoft.com/downloads/details.aspx?FamilyId=051ee83c-5ccf-48ed-8463-02f56a6bfc09&displaylang=en – 2009-05-03 04:22:21