2016-08-29 45 views

回答

1

通常safe methods不需要對CSRF進行保護,因爲它們不會對應用程序進行更改(即,在您提出問題時它們是「只讀」),即使它們正在返回敏感信息,在瀏覽器中受到Same Origin Policy的保護。

如果您的網站按照標準實施,您的GET請求應該是安全的,因此不需要保護。

但是,有一種特殊情況可能會執行「跨站點DoS」攻擊。假設您的報告頁面需要10秒才能執行,數據庫服務器的CPU使用率爲100%,Web服務器的CPU使用率爲80%。

您的網站的用戶知道永遠不會在辦公時間去https://yoursite.example.org/Analysis/GetReport,因爲它會殺死服務器並給其他用戶帶來不好的用戶體驗。

但是,Chuck想要脫機yoursite.example.org網站,因爲他不喜歡你或你的公司。

在繁忙的論壇,您的公司員工頻繁,http://forum.walkertexasranger.example.com,他將自己的簽名如下:

<img src="https://yoursite.example.org/Analysis/GetReport" width=0 height=0 /> 

每次通過你的員工讀Chuck的職位之一,身份驗證cookie被髮送到https://yoursite.example.org/Analysis/GetReport,因此您的站點處理請求並生成報告,並且您的系統脫機,因爲CPU會被這些不斷請求所佔用。

因此,即使請求是GET請求,並且不會對系統進行任何永久更改(又名「安全」/「只讀」),但實際上每次運行系統時都會使系統停機。因此,最好用CSRF預防方法來保護這一點,並可能將其作爲POST進行實施。

* XSDoS或Cross-Site Denial如果服務是我創造的短語,所以請勿使用Google搜索。