前端常見的安全問題

跨站腳本攻擊(XSS)

XSS(跨站腳本攻擊,Cross-Site Scripting)是一種通過在網頁中注入惡意腳本,從而竊取用戶數據或控制用戶行為的攻擊方式。注入的js跟網頁與原有的js具有同樣的權限,可以獲得server端數據、可以獲取cookie等。根據攻擊原理和場景,主要分為以下三類:

1. 反射型 XSS(非持久型)

  • 原理:攻擊者通過電子郵件等方式將包含惡意腳本的鏈接發送給目標用戶,當用戶點擊鏈接時,服務器將帶有惡意腳本的數據反射回用戶的瀏覽器,瀏覽器解析并執行這段腳本。
  • 場景舉例
    惡意鏈接:http://example.com/search?keyword=<script>alert('XSS');</script>
    用戶點擊后,服務器返回的搜索結果頁面中包含惡意腳本,瀏覽器執行后彈出彈窗(實際攻擊會更隱蔽,如竊取 Cookie)。
  • 特點
    • 攻擊不存入服務器數據庫,依賴用戶主動觸發
    • 常見于搜索框、登錄表單等用戶輸入直接顯示的場景。
  • 解決方法
    • 對用戶輸入進行嚴格的驗證和過濾,確保輸入內容符合預期。
    • 在將用戶輸入輸出到頁面時,進行HTML編碼將特殊字符(如<、>)轉換為HTML實體
    <script>alert('XSS');</script>
    
    &lt;script&gt;alert(&#39;XSS&#39;);&lt;/script&gt;
    
    • 使用Web應用防火墻(WAF)等安全工具檢測和阻止XSS攻擊。

2. 存儲型 XSS(持久型)

  • 原理:攻擊者將惡意腳本存入網站的數據庫中(如評論區、用戶資料等),當其他用戶訪問該頁面時,服務器從數據庫中讀取并渲染包含惡意腳本的內容,自動觸發攻擊
  • 場景舉例
    攻擊者在論壇發布一條包含惡意腳本的評論:<img src=x onerror="alert('XSS');">,其他用戶瀏覽該評論時,瀏覽器執行腳本。應為該評論存儲到了數據庫中
  • 特點
    • 攻擊腳本持久存儲在服務器,影響范圍廣(所有訪問該頁面的用戶)。
    • 常見于社交網站、博客、留言板等用戶可提交內容并長期展示的平臺。
  • 解決方法
    • 在存儲用戶輸入之前,對輸入內容進行嚴格的過濾和編碼
    • 使用內容安全策略(CSP)限制網頁可以加載的資源,減少XSS攻擊的機會。
    • 定期對存儲的數據進行安全審計,及時發現和清理潛在的惡意腳本。

3. DOM 型 XSS(基于文檔對象模型)

  • 原理:攻擊不依賴服務器端處理,而是通過修改客戶端頁面的 DOM 結構,將惡意腳本注入到瀏覽器解析的頁面中。例如,利用 JavaScript 獲取 URL 參數并動態插入到頁面元素中,且未對參數進行過濾。
  • 場景舉例
    • 頁面代碼存在漏洞:document.getElementById("demo").innerHTML = window.location.hash.slice(1);
    • 攻擊者構造 URL:http://example.com/#<script>alert('XSS');</script>,瀏覽器解析時將哈希值插入到頁面,執行腳本。
  • 特點
    • 攻擊完全發生在客戶端,服務器日志可能無法記錄
    • 依賴前端代碼對用戶輸入的處理漏洞。
  • 解決方法
    • 在前端代碼中對所有用戶可控的輸入(如URL參數)進行嚴格的驗證和編碼。
    • 使用現代Web框架(如React、Vue.js)的自動轉義功能,避免直接操作DOM。
    • 使用安全庫(如DOMPurify)對輸入數據進行凈化。

跨站請求偽造 (CSRF)

  • 攻擊方式:攻擊者誘導用戶在已登錄的狀態下,訪問一個惡意網站或點擊惡意鏈接,從而在用戶不知情的情況下,利用用戶的會話信息向目標網站發送偽造的請求。
  • 解決方法
    在表單提交時,添加一個唯一的Token值,并在服務器端驗證該Token。
    驗證HTTP請求頭中的Referer值是否來自同一域名。
    使用雙重身份驗證(如手機驗證碼)增強敏感操作的安全性。
    部署HTTPS協議,確保通信過程的安全。

DOS攻擊

  • 攻擊方式:攻擊者通過發送大量請求或數據包,使目標服務器或網絡資源過載,導致正常用戶無法訪問服務。
  • 解決方法
    部署防火墻和入侵檢測系統(IDS),檢測并阻止異常流量。
    使用負載均衡技術,分散攻擊流量。
    限制單個IP地址的請求頻率,防止惡意流量集中攻擊。
    定期更新系統和軟件,修復已知的安全漏洞。

會話劫持(Session Hijacking)

  • 攻擊方式:攻擊者通過竊取用戶的會話標識(如Session ID),冒充用戶身份進行非法操作。
  • 解決方法
    使用HTTPS協議加密通信過程,防止Session ID被竊取。
    設置Cookie的HttpOnly屬性,防止JavaScript腳本訪問Cookie。
    定期更新會話ID,并在用戶登錄時重新生成會話ID。
    設置會話超時,避免用戶長時間不操作時會話信息依然有效。

點擊劫持(Clickjacking)?

  • 攻擊方式:攻擊者通過在用戶瀏覽器中嵌入不可見的惡意頁面,誘導用戶點擊看似正常的按鈕或鏈接,從而觸發惡意操作。
  • 解決方法
    使用X-Frame-Options或Content-Security-Policy響應頭,防止頁面被嵌入到其他頁面中。
    在頁面中添加透明的保護層,防止用戶點擊被劫持。
    提醒用戶注意識別惡意鏈接和頁面,避免點擊不可信的內容。

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

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

相關文章

Spring Boot與Disruptor高性能隊列整合指南

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 一、Disruptor簡介 Disruptor是LMAX公司開發的高性能無鎖隊列框架&#xff0c;其核心設計通過以下特性實現卓越性能&#xff1a; 環形數組結構&#xff08;…

MongoDB CRUD操作完全指南:從入門到精通

在當今數據驅動的時代&#xff0c;數據庫管理系統扮演著至關重要的角色。作為最受歡迎的NoSQL數據庫之一&#xff0c;MongoDB以其靈活的數據模型、卓越的可擴展性和強大的查詢能力贏得了開發者的青睞。本文將全面介紹MongoDB的核心操作——CRUD&#xff08;創建、讀取、更新、刪…

2025/5/25 學習日記 linux進階命令學習

tree:以樹狀結構顯示目錄下的文件和子目錄&#xff0c;方便直觀查看文件系統結構。 -d&#xff1a;僅顯示目錄&#xff0c;不顯示文件。-L [層數]&#xff1a;限制顯示的目錄層級&#xff08;如 -L 2 表示顯示當前目錄下 2 層子目錄&#xff09;。-h&#xff1a;以人類可讀的格…

quickbi實現關聯度分析(復刻PowerBI展示)

quickbi實現關聯度分析&#xff08;復刻PowerBI展示&#xff09; PowerBI通過DAX創建度量值&#xff0c;可以比較輕松的實現不同產品的關聯度分析&#xff0c;即購物籃分析&#xff0c;但如果使用quickbi&#xff0c;則需要通過sql代碼創建一個數據集&#xff0c;然后再通過數…

git 把一個分支A的某一個 commit 應用到另一個分支B上

先記住分支 A 上你要應用的那個 commit <commit_id> checkout 到分支 B git cherry-pick <commit_id>完成

基于Python的分布式網絡爬蟲系統設計與實現

摘要 隨著互聯網信息爆炸性增長&#xff0c;大規模數據采集與分析需求日益增加。本文設計并實現了一套基于Python的分布式網絡爬蟲系統&#xff0c;采用圖形用戶界面實現便捷操作&#xff0c;集成異步IO技術與多線程處理機制&#xff0c;有效解決了傳統爬蟲在數據獲取、處理效…

一文講透golang channel 的特點、原理及使用場景

在 Go 語言中&#xff0c;通道&#xff08;Channel&#xff09; 是實現并發編程的核心機制之一&#xff0c;基于 CSP&#xff08;Communicating Sequential Processes&#xff09; 模型設計。它不僅用于協程&#xff08;Goroutine&#xff09;之間的數據傳遞&#xff0c;還通過…

PID項目---硬件設計

該項目是立創訓練營項目&#xff0c;這些是我個人學習的記錄&#xff0c;記得比較潦草 1.硬件-電路原理電賽-TI-基于MSPM0的簡易PID項目_嗶哩嗶哩_bilibili 這個地方接地是靜電的考量 這個保護二極管是為了在電源接反的時候保護電腦等設備 大電容的作用&#xff1a;當電機工作…

【分庫分表】理論基礎

目錄 為什么要分庫分表 垂直分 垂直分庫 垂直分表 垂直切分優缺點 優點 缺點 水平分 水平分庫 水平分表 水平切分優缺點 優點 缺點 為什么要分庫分表 分庫分表是一種場景解決方案&#xff0c;它的出現是為了解決一些場景問題的 單表過大的話&#xff0c;讀請求進…

UDP和TCP示例程序

查看自己的IP地址 以管理員身份運行cmd 輸入 ipconfig 復制圖中的IPv4地址 UDP通信程序 UdpReceiver.java import java.net.*;public class UdpReceiver {public static void main(String[] args) {// 監聽端口&#xff08;需與發送端保持一致&#xff09;int listenPort…

Double使用注意事項

目錄 數據精度問題BigDecimal的正確使用構造陷阱數值比較除法舍入控制 RoundingMode 數據精度問題 Java開發中&#xff0c;Double類作為包裝類用于處理雙精度浮點數。浮點數double無法精確表示某些十進制小數&#xff08;如0.1&#xff09;&#xff0c;導致運算結果出現誤差 …

8.2 線性變換的矩陣

一、線性變換的矩陣 本節將對每個線性變換 T T T 都指定一個矩陣 A A A. 對于一般的列向量&#xff0c;輸入 v \boldsymbol v v 在空間 V R n \pmb{\textrm V}\pmb{\textrm R}^n VRn 中&#xff0c;輸出 T ( v ) T(\boldsymbol v) T(v) 在空間 W R m \textrm{\pmb W}\…

【后端高階面經:微服務篇】5、限流實戰:高并發系統流量治理全攻略

一、限流閾值的三維度計算模型 1.1 系統容量基準線:壓測驅動的安全水位 1.1.1 壓力測試方法論 測試目標:確定系統在資源安全水位(CPU≤80%,內存≤70%,RT≤500ms)下的最大處理能力測試工具: 單機壓測:JMeter(模擬10萬并發)、wrk(低資源消耗)集群壓測:LoadRunner …

同一無線網絡下的設備IP地址是否相同?

在家庭和辦公網絡普及的今天&#xff0c;許多人都會好奇&#xff1a;連接同一個Wi-Fi的設備是否共享相同的IP地址&#xff1f;這個問題看似簡單&#xff0c;實則涉及多個角度。本文將為您揭示其中的技術奧秘。 用一個無線網IP地址一樣嗎&#xff1f;同一無線網絡&#xff08;如…

git push出現 “HTTP 400 curl 22 The requested URL returned error: 400...“錯誤

錯誤內容是&#xff1a; 錯誤&#xff1a;RPC 失敗。HTTP 400 curl 22 The requested URL returned error: 400 send-pack: unexpected disconnect while reading sideband packet 致命錯誤&#xff1a;遠端意外掛斷了 檢查發現&#xff1b;文件大小5M&#xff0c;遠低于100M&a…

對WireShark 中的UDP抓包數據進行解析

對WireShark 中的UDP抓包數據進行解析 本文嘗試對 WireShark 中抓包的 UDP 數據進行解析。 但是在嘗試對 TCP 中的 FTP 數據進行解析的時候&#xff0c;發現除了從端口號進行區分之外&#xff0c; 沒有什么好的方式來進行處理。 import numpy as np import matplotlib.pyplot …

云原生安全基石:Linux進程隔離技術詳解

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 一、基礎概念 進程隔離是操作系統通過內核機制將不同進程的運行環境和資源訪問范圍隔離開的技術。其核心目標在于&#xff1a; 資源獨占&#xff1a;確保…

云跡機器人底盤調用

云跡機器人底盤調用還是比較友好的&#xff0c;就是純socket收發指令就能實現&#xff0c;今天實現一個底盤移動到指定點位功能。底盤的默認IP是192.168.10.10通訊端口是31001&#xff0c;測試機與底盤接入統一網絡后直接發指令即可。本文給出兩種語言調用源碼&#xff0c;選擇…

勇闖Chromium—— Chromium的多進程架構

問題 構建一個永不崩潰或掛起的渲染引擎幾乎是不可能的,構建一個絕對安全的渲染引擎也幾乎是不可能的。 從某種程度上來說,2006 年左右的網絡瀏覽器狀態與過去單用戶、協作式多任務操作系統的狀況類似。正如在這樣的操作系統中,一個行為不端的應用程序可能導致整個系統崩潰…

MYSQL中的分庫分表及產生的分布式問題

分庫分表是分布式數據庫架構中常用的優化手段&#xff0c;用于解決單庫單表數據量過大、性能瓶頸等問題。其核心思想是將數據分散到多個數據庫&#xff08;分庫&#xff09;或多個表&#xff08;分表&#xff09;中&#xff0c;以提升系統的吞吐量、查詢性能和可擴展性。 一&am…