XSS 與 CSRF 攻擊——有什麼區別?
跨站指令碼(XSS)和跨站請求偽造(CSRF),它們將惡意指令碼注入目標系統,以進一步利用技術棧或竊取使用者資料。
什麼是 XSS 和 CSRF?
CSRF和XSS都是客戶端攻擊,它們濫用同源策略,利用web應用程式和受害使用者之間的信任關係。XSS和跨站指令碼攻擊允許攻擊者破壞合法使用者與任何易受攻擊的應用程式的互動。
什麼是 XSS?
XSS漏洞發生在web應用程式中,這些應用程式在不進行編碼或驗證的情況下接受使用者輸入並在響應中使用它。惡意使用者編寫惡意程式碼並透過輸入表單提交。目標伺服器包含這個指令碼及其響應,客戶機瀏覽器執行它。由於瀏覽器信任web伺服器,它授予惡意指令碼訪問本地儲存的cookie、會話令牌和其他敏感客戶端資訊的許可權。
XSS是一個常見的攻擊向量,成功攻擊的影響通常因不同的場景而不同,包括:
洩露使用者檔案
安裝惡意軟體/木馬
竊取網上銀行資訊
HTML/DOM 內容修改
將使用者重定向到未知網站
XSS 攻擊型別
XSS 攻擊主要分為三類:儲存型 XSS 攻擊/持久型 XSS/Type-I XSS
在儲存式跨站攻擊中,注入的惡意程式碼被永久地儲存在易受攻擊的web應用程式的不同元件中,如資料庫、評論欄位、訪客日誌、訊息論壇等。每當客戶端訪問受感染網站或向web伺服器發起請求時,該請求就會在使用者的瀏覽器中執行惡意指令碼。
無目的 XSS
一種混合形式的XSS攻擊,其中攻擊者的指令碼被儲存並反映來自後端應用程式的使用者。
反射/非永續性 XSS
在反射式跨站點指令碼中,惡意指令碼會從 Web 伺服器反射出來,例如搜尋結果、錯誤訊息或任何其他包含某些使用者輸入的 Web 伺服器響應。該指令碼透過外部路徑傳遞給受害者,例如不同的網站或電子郵件。當受害者提交表單、瀏覽駭客網站或點選可疑連結時,惡意指令碼會被髮送到該網站,然後反映在客戶端的瀏覽器中。
基於 DOM 的 XSS
在基於 DOM 的跨站指令碼中,惡意指令碼是透過修改受害者瀏覽器的文件物件模型環境而執行的。這種攻擊不會改變 Web 伺服器的 HTTP 響應,但會由於 DOM 修改而改變客戶端程式碼的執行。
什麼是 CSRF?
跨站點請求偽造 (CSRF) 也稱一鍵式攻擊,是一種 Web 應用程式網路攻擊,可誘使受害者在不知不覺中代表攻擊者執行操作。CSRF 攻擊利用 Web 應用程式中的一個安全漏洞,該漏洞無法區分經過身份驗證的使用者會話中的錯誤請求和合法請求。
攻擊者通常使用社會工程技術發起 CSRF 攻擊,以誘騙受害者使用者載入頁面或單擊包含惡意請求的連結。該連結從經過身份驗證的使用者的瀏覽器向目標網站傳送惡意請求。對於大多數網站,瀏覽器請求本質上包括會話資訊,例如會話 cookie、有效令牌或網站與使用者關聯的登入憑據。如果經過身份驗證的使用者已經與目標網站處於活動會話中,則站點會將新的惡意請求視為來自使用者的有效請求並執行它。
CSRF 攻擊型別
如果 Web 應用程式無法區分非法請求和有效請求,那麼它很容易受到跨站點請求偽造的攻擊。有當認證使用者與web應用程式處於活動會話時,攻擊才會成功。
登入 CSRF 攻擊
使用一種稱為Login CSRF攻擊的特殊形式的CSRF攻擊,攻擊者可以訪問受害者使用者的機密和敏感資料。這種攻擊迫使不知情的使用者登入到駭客控制的帳戶。然後,受害者被騙向賬戶中新增個人身份識別和敏感資訊,如電子郵件地址和信用卡資訊。
儲存 CSRF 攻擊
CSRF攻擊包也可以儲存在易受攻擊的網站上。對手可以透過執行高階XSS攻擊或在接受HTML的欄位中儲存IFRAME或IMG標記來實現儲存CSRF攻擊。在站點上儲存攻擊會放大攻擊的嚴重性和可能性,因為受害者使用者現在肯定會檢視CSRF載入的頁面,並且也會自然地對該頁面進行身份驗證。
CSRF 與 XSS 的區別
CSRF和XSS都是客戶端攻擊,它們濫用同源策略,利用web應用程式和不知情的使用者之間的信任關係。
但是,XSS 和 CSRF 攻擊之間存在一些根本差異,包括:
XSS攻擊遵循雙向攻擊模式,允許攻擊者執行惡意指令碼、訪問響應,並將後續敏感資料傳送到攻擊者選擇的目的地。另一方面,CSRF是一種單向攻擊機制,這意味著攻擊者只能發起HTTP請求,但不能檢索已發起請求的響應。
CSRF攻擊要求經過身份驗證的使用者處於活動會話中,而XSS攻擊則不需要。在XSS攻擊中,只要使用者登入,就可以儲存和交付有效載荷。
CSRF攻擊的範圍有限,僅限於使用者可以執行的操作,例如點選惡意連結或訪問駭客的網站。相反,XSS攻擊提供執行惡意指令碼來執行攻擊者所選擇的任何活動,從而擴大了攻擊的範圍。
在XSS攻擊中,惡意程式碼儲存在站點中,而在CSRF攻擊中,惡意程式碼儲存在受害使用者訪問的第三方站點中。
XSS 和 Javascript 注入有什麼區別?
XSS 是一種客戶端攻擊,駭客將惡意指令碼部署到 Web 伺服器中,由毫無戒心的使用者瀏覽器執行。
另一方面,Javascript 注入是一種伺服器端攻擊,駭客將惡意指令碼傳送到伺服器,由直譯器執行,就好像它是原始碼的一部分一樣。
有哪些有效的 CSRF 預防機制?
防止 CSRF 攻擊的一些方法包括:
使用同步器令牌模式
使用雙重提交 cookie
使用 HTTP 標準標頭來驗證請求的來源
基於 UI 的驗證,例如基於 CAPTCHA 的授權和 MFA
使用 SameSite Cookie 進行請求來源管理
CSRF 令牌的使用
一些常用的有效 XSS 預防技術包括:
執行內容安全策略
驗證和過濾使用者輸入
編碼輸出資料
使用自定義響應標頭(Content-Type 和 X-Content-Type-Options)來管理瀏覽器響應解釋
清理 HTML 輸入
隨著安全左移,在開發期間透過 靜態程式碼掃描工具可以第一時間發現可以造成嚴重安全事故的缺陷及安全隱患,透過提高軟體安全性防範未知安全風險。
文章來源:
https://crashtest-security.com/xss-vs-csrf-difference/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2905523/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- XSS攻擊和CSRF攻擊有什麼區別?
- 什麼是XSS攻擊?XSS攻擊有哪幾種型別?型別
- 什麼是CC攻擊?與DDoS攻擊有什麼區別?
- XSS攻擊有什麼特點?XSS攻擊分為幾個型別?型別
- 什麼是XSS攻擊?其攻擊原理有哪些?
- 什麼是CSRF攻擊?如何防禦CSRF攻擊?
- 前端面試查漏補缺--(七) XSS攻擊與CSRF攻擊前端面試
- 什麼是CSRF攻擊?
- 建議收藏!XSS與CSRF攻擊防範措施
- 總結 XSS 與 CSRF 兩種跨站攻擊
- DDoS攻擊與CC攻擊的區別是什麼?
- CSRF攻擊是什麼?防範手段有哪些?
- 網路攻擊中主動攻擊和被動攻擊有什麼區別?
- 【日常篇】DOS攻擊和DDOS攻擊之間有什麼區別?
- CSRF與SSRF是什麼?它們之間有什麼區別?
- 【網路安全知識】DDOS攻擊和CC攻擊有什麼區別?
- 什麼是SQL隱碼攻擊、XSS以及CSRF?【網路安全知識培訓】SQL
- 什麼是DDoS攻擊?與CC攻擊有什麼聯絡?
- CSRF攻擊與防禦
- CSRF 攻擊與防禦
- csrf攻擊與防範
- 【技術乾貨】XSS攻擊、CSRF攻擊基本概念及防範方法
- CSRF攻擊是什麼並且如何防止
- CSRF 攻擊
- CSRF攻擊
- CSRF攻擊與Django防範Django
- web安全:什麼是 XSS 和 CSRFWeb
- 【網路安全入門】CSRF攻擊是什麼?它的危害有哪些?
- XSS與SQL隱碼攻擊SQL
- 讓你徹底瞭解SQL隱碼攻擊、XSS和CSRFSQL
- 什麼是APT攻擊?APT攻擊有什麼主要特徵?APT特徵
- 【網路安全入門】DDOS攻擊和DOS攻擊之間有什麼區別及聯絡?
- 什麼是DOS?DOS攻擊型別有哪些?型別
- 跨域及相關攻擊&防禦總結(JSONP、CORS、CSRF、XSS)跨域JSONCORS
- csrf攻擊例項
- xss csrf
- 如何防止XSS攻擊
- 什麼是重放攻擊與中間人攻擊?