首頁 運維 安全 csrf防禦方法有哪些

csrf防禦方法有哪些

Jun 29, 2020 am 09:08 AM
csrf 防禦方法

csrf防禦方法有:1、驗證HTTP Referer欄位;2、在請求位址中加入token並驗證;3、在HTTP頭中自訂屬性並驗證。 csrf是一種挾制用戶在目前已登入的網路應用程式上執行非本意的操作的攻擊方法。

csrf防禦方法有哪些

csrf是一種挾位使用者在目前已登入的網路應用程式上執行非本意的操作的攻擊方法。

csrf防禦方法:

目前防禦CSRF 攻擊主要有三種策略:

1、驗證HTTP Referer 欄位;

2、在請求位址中新增token 並驗證;

3、在HTTP 頭中自訂屬性並驗證。

下面我們來具體說一下:

(1)驗證HTTP Referer 欄位

根據HTTP 協議,在HTTP 頭中有一個欄位叫Referer,它記錄了該HTTP 請求的來源位址。在通常情況下,存取安全受限頁面的請求來自於同一個網站。而如果駭客要對銀行網站實施 CSRF 攻擊,他只能在他自己的網站建構請求,當使用者透過駭客的網站發送請求到銀行時,該請求的 Referer 是指向駭客自己的網站。

因此,要防禦CSRF 攻擊,銀行網站只需要對於每一個轉帳請求驗證其Referer 值,如果是以bank.example 開頭的域名,則說明該請求是來自銀行網站自己的請求,是合法的。如果 Referer 是其他網站的話,則有可能是駭客的 CSRF 攻擊,拒絕該請求。

這種方法的顯而易見的好處就是簡單易行,網站的普通開發人員不需要操心CSRF 的漏洞,只需要在最後給所有安全敏感的請求統一增加一個攔截器來檢查Referer 的值就可以。特別是對於目前現有的系統,不需要改變目前系統的任何現有程式碼和邏輯,沒有風險,非常方便。

(2)在請求位址中新增token 並驗證

CSRF 攻擊之所以能夠成功,是因為駭客可以完全偽造使用者的請求,該請求中所有的使用者驗證資訊都是存在於cookie 中,因此駭客可以在不知道這些驗證資訊的情況下直接利用使用者自己的cookie 來通過安全驗證。

要抵禦 CSRF,關鍵在於在請求中放入駭客所不能偽造的訊息,並且該資訊不存在於 cookie 之中。可以在HTTP 請求中以參數的形式加入一個隨機產生的token,並在伺服器端建立一個攔截器來驗證這個token,如果請求中沒有token 或token 內容不正確,則認為可能是CSRF 攻擊而拒絕該請求。

(3)在HTTP 頭中自訂屬性並驗證

#這種方法也是使用token 並進行驗證,和上一個方法不同的是,這裡並不是把token 以參數的形式置於HTTP 請求之中,而是把它放到HTTP 頭中自訂的屬性裡。透過 XMLHttpRequest 這個類,可以一次給所有該類請求加上 csrftoken 這個 HTTP 頭屬性,並把 token 值放入其中。

這樣解決了上種方法在請求中加入token 的不便,同時,透過XMLHttpRequest 請求的位址不會被記錄到瀏覽器的位址欄,也不用擔心token 會透過Referer 洩漏到其他網站中去。

然而這種方法的限制非常大。 XMLHttpRequest 請求通常用於Ajax 方法中對於頁面局部的非同步刷新,並非所有的請求都適合用這個類別來發起,而且透過該類別請求得到的頁面不能被瀏覽器所記錄下,從而進行前進,後退,刷新,收藏等操作,造成使用者不便。

另外,對於沒有進行CSRF 防護的遺留系統來說,要採用這種方法來進行防護,要把所有請求都改為XMLHttpRequest 請求,這樣幾乎是要重寫整個網站,這代價無疑是不能接受的。

如果您想了解更多相關問題,可以存取php中文網

以上是csrf防禦方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Nginx反向代理中的HTTP請求嗅探防禦方法 Nginx反向代理中的HTTP請求嗅探防禦方法 Jun 11, 2023 am 08:12 AM

Nginx反向代理中的HTTP請求嗅探防禦方法

PHP Session 跨域與跨站請求偽造的比較分析 PHP Session 跨域與跨站請求偽造的比較分析 Oct 12, 2023 pm 12:58 PM

PHP Session 跨域與跨站請求偽造的比較分析

PHP 框架安全指南:如何防止 CSRF 攻擊? PHP 框架安全指南:如何防止 CSRF 攻擊? Jun 01, 2024 am 10:36 AM

PHP 框架安全指南:如何防止 CSRF 攻擊?

Laravel中的跨站腳本攻擊(XSS)和跨站請求偽造(CSRF)防護 Laravel中的跨站腳本攻擊(XSS)和跨站請求偽造(CSRF)防護 Aug 13, 2023 pm 04:43 PM

Laravel中的跨站腳本攻擊(XSS)和跨站請求偽造(CSRF)防護

防注入攻擊:Java安全控制方法 防注入攻擊:Java安全控制方法 Jun 30, 2023 pm 05:16 PM

防注入攻擊:Java安全控制方法

PHP中的CSRF攻擊 PHP中的CSRF攻擊 May 25, 2023 pm 08:31 PM

PHP中的CSRF攻擊

PHP和Vue.js開發防禦跨站請求偽造(CSRF)攻擊的應用程式 PHP和Vue.js開發防禦跨站請求偽造(CSRF)攻擊的應用程式 Jul 05, 2023 pm 07:21 PM

PHP和Vue.js開發防禦跨站請求偽造(CSRF)攻擊的應用程式

PHP中的跨站請求偽造(CSRF)防禦技術解析 PHP中的跨站請求偽造(CSRF)防禦技術解析 Jun 29, 2023 am 09:20 AM

PHP中的跨站請求偽造(CSRF)防禦技術解析

See all articles