網絡安全防護:點擊劫持

目錄

1、概念

2、攻擊原理:視覺欺騙與層疊控制

3、點擊劫持的危害

4、防御點擊劫持

4.1?X-Frame-Options?HTTP 響應頭 (最直接有效)

4.2?Content-Security-Policy?(CSP) HTTP 響應頭 (現代、更強大)

4.3?客戶端 JavaScript 防御 (Frame Busting)


1、概念

點擊劫持(Clickjacking),也被稱為“UI 覆蓋攻擊”或“UI 偽裝攻擊”,是一種惡意技術,攻擊者通過欺騙用戶在不知情的情況下點擊看似無害的網頁元素(如按鈕、鏈接),但實際上點擊的是攻擊者精心隱藏的、位于誘餌頁面透明層下方的另一個頁面的敏感元素(如轉賬按鈕、權限授權按鈕、刪除按鈕等)。

跨域限制的繞過:?同源策略限制了 JavaScript 跨域讀取 iframe 內容,但無法阻止 iframe 的嵌入接收用戶輸入事件(如點擊)。這是點擊劫持能發生的根本技術基礎。

2、攻擊原理:視覺欺騙與層疊控制

攻擊的關鍵在于利用 HTML 的?iframe?元素和 CSS 的層疊(z-index)、透明度(opacity)和定位(positioning)屬性:

  • 創建透明框架:?攻擊者將目標網站(例如用戶的銀行頁面、社交媒體設置頁面、管理員后臺等)嵌入到一個透明的?iframe?中。

  • 設計誘餌頁面:?攻擊者精心設計一個看起來無害、有吸引力的頁面(例如一個有趣的游戲、一個免費贈品的領取頁面、一個引人注目的視頻縮略圖等)。這個頁面就是用戶實際看到并與之交互的頁面。

  • 覆蓋與定位:?攻擊者使用 CSS 將透明的目標網站?iframe?精確地覆蓋在誘餌頁面的特定可點擊元素(如“開始游戲”、“領取獎品”、“播放視頻”按鈕)之上。通常,誘餌按鈕會被做得很大或很誘人,而透明的?iframe?中的敏感按鈕(如“確認轉賬”、“授權訪問”、“刪除賬戶”)則被定位到恰好位于誘餌按鈕的下方。

  • 用戶交互:?用戶被誘騙訪問這個惡意頁面。用戶看到的是誘餌頁面上的按鈕(例如“點擊贏大獎”),并毫無戒心地點擊它。

  • 惡意操作執行:?由于透明的?iframe?覆蓋在誘餌按鈕之上,用戶的點擊實際上落在了?iframe?內目標網站的那個敏感按鈕上。如果用戶已經在目標網站登錄(例如瀏覽器保存了登錄狀態),那么這個操作(如轉賬、授權、刪除)就會以用戶的身份成功執行,而用戶對此毫不知情,以為自己只是在玩一個游戲或領取獎品。

3、點擊劫持的危害

  • 未經授權的資金轉移:?劫持銀行網站的轉賬操作。

  • 賬戶接管:?劫持更改密碼、郵箱或安全設置的按鈕。

  • 隱私泄露:?劫持“授權應用訪問”按鈕,將賬戶權限授予惡意應用。

  • 社交媒體濫用:?劫持“點贊”、“關注”、“分享”甚至“發布”按鈕,在用戶不知情下發布垃圾信息或不當內容。

  • 數據刪除:?劫持“刪除郵件”、“刪除文件”、“刪除賬戶”按鈕。

  • 傳播惡意軟件:?劫持“下載”或“安裝”按鈕。

  • 竊取敏感信息:?通過拖拽劫持等方式。

4、防御點擊劫持

防御主要依靠網站所有者在服務器端設置 HTTP 響應頭,告訴瀏覽器該頁面是否允許被嵌入到 iframe 中,以及誰可以嵌入:

4.1?X-Frame-Options?HTTP 響應頭 (最直接有效)

  • DENY: 頁面絕對不允許被嵌入到任何 iframe 中。

  • SAMEORIGIN: 頁面只允許被同源網站(相同協議、域名、端口)的頁面嵌入。

4.2?Content-Security-Policy?(CSP) HTTP 響應頭 (現代、更強大)

  • 使用?frame-ancestors?指令來指定哪些頁面可以嵌入該頁面。

  • 例如:

    • Content-Security-Policy: frame-ancestors 'none';?(等同于?X-Frame-Options: DENY)

    • Content-Security-Policy: frame-ancestors 'self';?(等同于?X-Frame-Options: SAMEORIGIN)

    • Content-Security-Policy: frame-ancestors https://trusted.example.com;?(只允許特定可信域名嵌入)

  • CSP 提供了比?X-Frame-Options?更細粒度的控制。

4.3?客戶端 JavaScript 防御 (Frame Busting)

  • 在頁面中加入腳本,檢測自己是否被嵌套在 iframe 中,如果是,則嘗試跳出框架(如?if (top != self) top.location = self.location;)。

  • 局限性:?現代瀏覽器有多種方式可以被攻擊者利用來繞過 Frame Busting 腳本(如使用?sandbox?屬性限制腳本執行、使用?XSS?先破壞頁面本身等)。因此,這只能作為輔助手段,不能替代服務端設置 HTTP 頭

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86903.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Boot常用依賴大全:從入門到精通

springboot <!-- Spring Boot 的 Spring Web MVC 集成 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 注解校驗代替ifelse --> <de…

Linux系統下安裝elasticsearch6.8并配置ik分詞

準備安裝包和環境 jdk 由于es是基于java開發的所以需要安裝jdk。如果沒有安裝的話 jdk8下載 下載后配置環境變量安裝。 es es6.8下載地址 elasticsearch-6.8.14.tar.gz ik分詞器 es分詞器需要下載對應es版本的 elasticsearch-analysis-ik-6.8.14.zip 安裝es es不推薦使…

OceanBase (DBA)一面面經

1. Oracle高可用和ob高可用&#xff0c;和他們的實現方式&#xff1f; 2.ob的三副本了解嗎&#xff0c;ob的三副本怎么保障強一致的&#xff1f; 3.三副本能實現強一致嗎&#xff1f; 4.了解ob的數據協調協議嗎&#xff1f;說說原理 5.聊聊Oracle&#xff0c;講一些SQL調優…

PyTorch框架詳解(1)

目錄 代碼會放在每條解釋的后面 一.概念&#xff1a; 2.張量的概念&#xff1a; 3.張量的創建 4.張量的數據類型及轉換 二.tensor和numpy互轉 三.張量的運算 四.索引的操作 五.張量形狀操作 維度交換&#xff1a; 六.張量拼接操作 代碼會放在每條解釋的后面 一.概念…

Spring Boot 與 Kafka 的深度集成實踐(一)

引言 ** 在當今的軟件開發領域&#xff0c;構建高效、可靠的分布式系統是眾多開發者追求的目標。Spring Boot 作為 Java 生態系統中極具影響力的框架&#xff0c;極大地簡化了企業級應用的開發流程&#xff0c;提升了開發效率和應用的可維護性。它基于 Spring 框架構建&#…

PIN to PIN兼容設計:MT8370與MT8390核心板開發對比與優化建議

X8390 是基于聯發科 MT8390 CPU 的一款開發板&#xff0c; MT8390 與 MT8370 是 PIN to PIN 的封裝&#xff0c;可以共用一個核心 板。 MT8390 (Genio 700) 是一款高性能的邊緣 AI 物聯網平臺&#xff0c;廣泛應用于智能家居、交 互式零售、工業和商業等領域。它采用…

【論文解讀】START:自學習的工具使用者模型

1st author: ?Chengpeng Li? - ?Google 學術搜索? paper: [2503.04625] START: Self-taught Reasoner with Tools code: 暫未公布 5. 總結 (結果先行) 大型語言推理模型&#xff08;Large Reasoning Models, LRMs&#xff09;在模擬人類復雜推理方面取得了顯著進展&…

【GitOps】Kubernetes安裝ArgoCD,使用阿里云MSE云原生網關暴露服務

?? ArgoCD是什么? ArgoCD是一款開源的持續交付(CD)工具,專門為Kubernetes環境設計。它采用GitOps理念,將Git倉庫作為應用部署的唯一真實來源(SSOT),實現了聲明式的應用部署和管理。 簡單來說,ArgoCD就像是一位不知疲倦的"倉庫管理員",時刻盯著你的Git倉庫,…

三維重建 —— 1. 攝像機幾何

文章目錄 1. 針孔相機1.1. 針孔成像1.2. 光圈對成像的影響 2. 透視投影相機2.1. 透鏡成像2.2. 失焦2.3. 徑向畸變2.4. 透視投影的性質 3. 世界坐標系到像素坐標系的變換4. 其它相機模型4.1. 弱透視投影攝像機4.2. 正交投影攝像機4.3. 各種攝像機模型的應用場合 課程視頻鏈接&am…

Linux基本指令(包含vim,用戶,文件等方面)超詳細

文章目錄 Linux 基本指令前序Vim編輯器分為兩種設計理念模式轉化指令解釋 Normal模式移動光標&#xff08;motion 核心&#xff09;常用指令 動作(action)常用指令將動作與移動進行組合 查找&#xff08;正則表達式&#xff09;替換&#xff08;substitude&#xff09;文本對象…

如何徹底刪除Neo4j中的所有數據:完整指南

如何徹底刪除Neo4j中的所有數據&#xff1a;完整指南 Neo4j作為領先的圖數據庫&#xff0c;在某些場景下我們需要完全清空數據庫中的所有數據。本文將介紹多種刪除Neo4j數據的有效方法&#xff0c;涵蓋不同版本和部署方式的操作步驟。 一、Neo4j數據刪除的常見需求場景 開發…

Keil無法下載程序到STM32 Error: Flash Download failed - Target DLL has been cancelled

背景 Keil通過st-link v2連接STM32&#xff0c;下載報錯 Error: Flash Download failed - Target DLL has been cancelled 我有多臺STM32需要下載程序&#xff0c;會出現這個問題 原因 應該是Keil保存了設備的相關信息&#xff0c;當換了設備之后下載就會出錯 解決辦法 斷…

CIM和建筑風貌管控平臺

2025年的雄安新區&#xff0c;中央綠谷的碧波倒映著現代建筑群&#xff0c;中國星網總部大廈的曲面幕墻與古風飛檐相映成趣。這座“未來之城”的每一處建筑肌理&#xff0c;都離不開一項關鍵技術——城市信息模型&#xff08;CIM&#xff09;與建筑風貌管控平臺的支撐。從雄安到…

REBT 分類任務中,`loss`(損失值)和 `logits`(原始預測分數)是什么

REBT 分類任務中,loss(損失值)和 logits(原始預測分數)是什么 在分類任務中,loss(損失值)和 logits(原始預測分數)的含義及計算邏輯可以通過具體示例清晰解釋。以下結合你提供的數值(loss=0.7478,logits=[-0.1955, -0.3021])進行說明 一、logits 的本質:未歸一化…

6月13日day52打卡

神經網絡調參指南 知識點回顧&#xff1a; 隨機種子內參的初始化神經網絡調參指南 參數的分類調參的順序各部分參數的調整心得 作業&#xff1a;對于day41的簡單cnn&#xff0c;看看是否可以借助調參指南進一步提高精度。 用“燒水調溫”的日常場景來打比方&#xff1a; 每個…

穿越時空的刀劍之旅:走進VR刀劍博物館?

VR 刀劍博物館不僅僅是一個展示刀劍的場所&#xff0c;更是文化傳承與教育的重要基地&#xff0c;在弘揚刀劍文化、增強民族文化認同感以及開展教育活動等方面發揮著不可替代的重要作用。? 從文化傳承的角度來看&#xff0c;刀劍文化源遠流長&#xff0c;它承載著不同國家、不…

基于GA遺傳優化的PID控制器最優控制參數整定matlab仿真

PID&#xff08;比例-積分-微分&#xff09;控制器是工業控制領域中最常用的控制器之一。通過調節PID控制器的三個參數&#xff1a;比例&#xff08;Kp&#xff09;、積分&#xff08;Ki&#xff09;和微分&#xff08;Kd&#xff09;&#xff0c;可以實現系統的穩定控制。然而…

華為OD最新機試真題-上班之路-OD統一考試(B卷)

題目描述 Jungle 生活在美麗的藍鯨城,大馬路都是方方正正,但是每天馬路的封閉情況都不一樣。地圖由以下元素組成: .—空地,可以達到 *—路障,不可達到; S—Jungle的家。 T—公司;

大模型驅動數據分析革新:美林數據智能問數解決方案破局傳統 BI 痛點

在數字化向智能化躍遷的時代浪潮中&#xff0c;大模型技術正驅動企業數據分析模式迎來顛覆性變革。傳統自助式BI工具主導的數據分析模式&#xff0c;雖在降低分析門檻、提升報表開發效率層面發揮了一定作用&#xff0c;但隨著數據應用場景的深化&#xff0c;其指標固化、響應滯…

(Note)基于Pytorch手搓RNN參考

Coding a Recurrent Neural Network (RNN) from scratch using PytorchPyTorch RNN from Scratch - Jake Taelearning pytorch 3: coding an RNN, GRU, LSTM | Kaggle