資安JAVA(十一):X-XSS-Protection

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 11 – X-XSS-PROTECTION
作者:John Melton
內文:
What is it and why should I care?

X-XSS-保護機制是微軟 IE的新功能,用來避免XSS攻擊。但這並不是萬能藥,也不能當作「哈!我們不需要花時間讓網站更安全」的藉口。單純是瀏覽器提供的用來保護大眾免於XSS垃圾的騷擾。Firefox利用NoScript、Chrome和Safari採用WebKit達到類似的功能,但明顯和X-XSS-Protection header 的技巧無關。

XSS 保護機制會檢查網站送出的內容(response)和使用者送出的要求(request)是否相符合,並且是否有機會造成XSS漏洞。接著filter 會重組可疑內容,讓script失效,避免XSS攻擊。
根據微軟的 事件 1046 Cross-Site Scripting Filter ,預設大部分的網路區域(包括Internet)都是開啟的。



What should I do about it?

你第一件該做的是解決應用程式中所有的XSS問題。身為關心資安的開發者,這是優先任務。

作者並不是很推薦使用這個 header 設定。雖然在之前一系列的文章中,提到的 header 設定皆無副作用。但 X-XSS-Protection header 過去幾年的確有一些問題, 這裡 和 這裡 還有 這裡 都有紀錄。IE 的那群仁很努力在解決已知的弱點,但某些弱點仍然存在。

基本上作者建議你將保護機制設定啟用,除非你確定所有XSS問題都已經被解決了。作者送給大家的忠告是,你應該替網站制定一些使用案例。依據你的選擇,以下有幾種狀況,包含如何在你的網站中啟用 X-XSS-Protection HTTP header。

狀況1. 在所有的網路區域啟用保護,並設定為阻擋模式(blocking mode)。意味著只要瀏覽器覺得XSS攻擊發生就馬上阻擋網站行為,然後跳出訊息顯示已阻擋。
X-XSS-Protection: 1; mode=block

狀況2. 在所有的網路區域啟用保護。
X-XSS-Protection: 1

狀況3. 在預設的網路區域啟用保護
什麼都不用做...

狀況4. 在所有的網路區域停止保護。只有在你完全確定網站中不存在任何的XSS問題,或你發現瀏覽器的XSS filter 有弱點。
X-XSS-Protection: 0

X-XSS-Protection header 的保護並不周全,但仍然提升了攻擊的難度。雖然實作上還存在某些問題,但從各瀏覽器提供的解決方案來看,XSS的確是大家都很重視的議題。當你實作時需要嚴謹的開發,但請努力用你了解的方法幫助你的使用者更安全吧!

參考資料
http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header.aspx
http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx
http://blogs.msdn.com/b/mikeormond/archive/2009/01/26/ie8-cross-site-scripting-xss-protection.aspx
http://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx
http://michael-coates.blogspot.com/2009/07/ie-8-anti-xss-bit-overblown.html
http://jeremiahgrossman.blogspot.com/2010/01/to-disable-ie8s-xss-filter-or-not.html
http://www.jtmelton.com/2009/01/12/the-owasp-top-ten-and-esapi-part-2-cross-site-scripting-xss/
http://michael-coates.blogspot.com/2009/11/ie8-xss-filter-bug.html
http://xforce.iss.net/xforce/xfdb/47442
http://hackademix.net/2009/11/21/ies-xss-filter-creates-xss-vulnerabilities/
http://www.theregister.co.uk/2009/11/20/internet_explorer_security_flaw/

———–———–
資安Java: 上一篇 || 下一篇
———–———–


留言

這個網誌中的熱門文章

資安JAVA(八):HTTP強制傳輸安全(HSTS)

以 SharpPcap 實作可收聽封包的 C# 程式

資安JAVA(四):Session Cookie HTTPOnly Flag