資安JAVA(九):X-Frame-Option

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 9 – X-FRAME-OPTIONS
作者:John Melton
內文:
I would iframe you if you iframed me.
What is it and why should I care?

X-Frame-Option 是一種新技術(目前起草階段的標準叫做 Frame-Option ),用來設定你的網站能否被嵌入到 iFrame。主要的目的是解決 Clickjacking 問題。這個技術主要是實做到伺服器端的 HTTP response header 。客戶端的瀏覽器則依據網頁 header 的 X-Frame-Options 是否啟用,以決定該網頁能否被置於框架之中。

What should I do about it?

再一次強調,這個 header option 不僅低風險,還能為你增加額外的保證。或許使用上有些 限制 ,但並不會降低安全性。純粹是額外一層的保護。一個網頁可以設定三種不同嵌入框架的選項(Option):

Option 1: DENY (not allowed, even the same orgin)
此選項不允許該頁面在任何情況下被嵌入到框架。以下是範例程式碼:
HttpServletResponse response ...;
response.addHeader("X-FRAME-OPTIONS", "DENY");


Option 2: SAMEORIGIN (allowed, but only the same orgin)
此選項允許該頁面被嵌入到同網域(only the same orgin)的框架。以下是範例程式碼:
HttpServletResponse response ...;
response.addHeader("X-FRAME-OPTIONS", "SAMEORIGIN");


Option 3: Allow-From  (allowed, but only the chosen orgin)
此選項允許該頁面被嵌入到框架,但只限於某個網域。以下是範例程式碼:
HttpServletResponse response ...;
response.addHeader("X-FRAME-OPTIONS", "Allow-From https://some.othersite.com");


OWASP 提供更多的幫助,(你們人真好 !!)他們將 X-Frame-Options 簡單的範例寫成  J2EE filter 。X-Frame-Options 對網站是很棒的額外的保護以避免 clickjacking 。而且套用之後並不影響目前的一切,成本低,對你的使用者很有幫助(企業們快來用)。

參考資料
https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header
https://www.owasp.org/index.php/Clickjacking#Defending_with_response_headers
http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx
http://blog.mozilla.com/security/2010/09/08/x-frame-options/
http://lcamtuf.blogspot.com/2011/12/x-frame-options-or-solving-wrong.html
http://www.jtmelton.com/2012/02/03/year-of-security-for-java-week-5-clickjacking-prevention/
http://tools.ietf.org/html/draft-gondrom-frame-options

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

留言

這個網誌中的熱門文章

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

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

資安JAVA(四):Session Cookie HTTPOnly Flag