原文:
引言當我們的頁面嵌入到乙個iframe中時,安全測試提出乙個於我而言很新鮮的詞彙–點選劫持,會造成安全隱患。
1. 什麼是點選劫持?
點選劫持(clickjacking)是一種視覺上的欺騙手段。大概有兩種方式,一是攻擊者使用乙個透明的iframe,覆蓋在乙個網頁上,然後誘使使用者在該頁面上進行操作,此時使用者將在不知情的情況下點選透明的iframe頁面;二是攻擊者使用一張覆蓋在網頁,遮擋網頁原有位置的含義;
簡單的說,就是使用者點選了乙個按鈕,但是觸發的操作不是正常期待的事件,而是觸發了別的非意願操作…
2. 解決辦法
x-frame-options 響應頭配置避免點選劫持攻擊
原理:x-frame-options http響應頭是用來給瀏覽器指示允許乙個頁面可否在
<
frame
>,<
iframe
>或者<
object
>
中展現的標記。**可以使用此功能,來確保自己**的內容沒有被嵌到別人的**中去,也從而避免了點選劫持 (clickjacking) 的攻擊。
x-frame-options有三種可配置值,(屬性值不區分大小寫)12
3x-frame-options: deny
x-frame-options: sameorigin
x-frame-options: allow-from
指令如果指定deny,從其他站點載入時,不僅嘗試在框架中載入頁面失敗,從同一站點載入時嘗試這樣做將失敗。另一方面,如果指定sameorigin,只要包含在框架中的站點與為頁面提供服務的站點相同,仍然可以在框架中使用該頁面。
deny無論站點嘗試這樣做,頁面都不能顯示在框架中。sameorigin該頁面只能顯示在與頁面本身相同的源框架中。allow-from_ uri_頁面只能顯示在指定原點的框架中。
當前專案是部署在nginx上的,那就以nginx為例來做個配置,除此還可以配置在 apache,iis等。
配置過程:
#1. 在nginx下 /opt/nginx/conf.d/example.conf下寫入12
3add_header x-frame-options "allow-from ";
也可以直接寫網域名稱
#2. 踩坑
發現在chrome下會報錯,報錯資訊如下:
1經過排查發現是在chrome和safari要使用content-security-policy引數
#3. 設定用content-security-policy
1add_header content-security-policy "frame-ancestors example.com";
3. 參考鏈結
web安全之–點選劫持攻擊與防禦技術簡介
clickjacking漏洞的原理
4. 相關知識點
防盜煉攻擊
web安全之點選劫持
點選劫持 clickjacking 是一種視覺上的欺騙手段。大概有兩種方式,那些不能說的秘密 ps 頁面看起來就這樣,當然真正攻擊的頁面會精緻些,不像這麼簡陋。ps 可以把iframe透明設為0.3看下實際點到的東西。3.這樣貼吧就多了乙個粉絲了。解決辦法 使用乙個http頭 x frame opt...
前端網路安全 點選劫持
點選劫持特點 使用者親自操作 使用者不知情 實現原理 利用iframe,在攻擊 讓使用者點選隱藏的iframe目標頁面。防禦策略 1 j ascript禁止內嵌,利用top物件和window物件判斷是否被巢狀,然後頁面進行跳轉。正常頁面top物件和window物件是相等的 被iframe嵌入了頁面,...
XSS學習筆記(乙個) 點選劫持
所謂xss這個場景被觸發xss地方,在大多數情況下,攻擊者被嵌入在網頁中 問題 該惡意指令碼 cross site scripting 這裡的攻擊始終觸發瀏覽器端,攻擊的者的目的。一般都是獲取使用者的cookie 能夠還原賬戶登入狀態 導航到惡意 攜帶木馬,作為肉雞發起cc攻擊。傳播xss蠕蟲等。整...