Laravel框架CSRF攻擊

在平時的生活中 我們經常遇到網絡詐騙 。類似的攻擊者通過各種手段給我們發送誤導信息 篡改網頁 內容 使我們上當受騙。而CSRF(跨站請求僞造)就是利用的網站對用戶網頁瀏覽器的信任,通過一些 技術手段欺騙用戶的瀏覽器去訪問一個自己曾經認證過的網站並運行一些操作(如發郵件,發消息, 甚至財產操作如轉賬和購買商品)。由於瀏覽器曾經認證過,所以被訪問的網站會認爲是真正的用戶 操作而去運行。這利用了web中用戶身份驗證的一個漏洞:簡單的身份驗證只能保證請求發自某個用 戶的瀏覽器,卻不能保證請求本身是用戶自願發出的。

示例:
假如一家銀行用以運行轉賬操作的URL地址如下:
http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName

那麼,一個惡意攻擊者可以在另一個網站上放置如下代碼:
< img src=“http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman”>

如果有賬戶名爲Alice的用戶訪問了惡意站點,而她之前剛訪問過銀行不久,登錄信息尚未過期,那麼她就會損失1000資金。

這種惡意的網址可以有很多種形式,藏身於網頁中的許多地方。此外,攻擊者也不需要控制放置惡意網址的網站。例如他可以將這種地址藏在論壇,博客等任何用戶生成內容的網站中。這意味着如果服務端沒有合適的防禦措施的話,用戶即使訪問熟悉的可信網站也有受攻擊的危險。

透過例子能夠看出,攻擊者並不能通過CSRF攻擊來直接獲取用戶的賬戶控制權,也不能直接竊取用戶的任何信息。他們能做到的,是欺騙用戶瀏覽器,讓其以用戶的名義運行操作。

                                                                 **-----示例轉自百度百科**

所以爲了防止這種事情的出現 ,Laravel框架出現了一個新的驗證方式

< input type=“hidden” name="_token" value="{{csrf_token()}}" >

這個csrf_token()的原理就是當用戶訪問需要登陸信息的頁面的時候,會生成一個csrf的隨機字符串,並且cookie中也存放了這個隨機字符串,當用戶再次提交數據的時候會帶着這個隨機字符串提交,如果沒有這個隨機字符串則無法提交成功,系統會認爲csrf攻擊從而拒絕該請求。

這種方法使csrf攻擊的成功率大大降低,使攻擊者無機可乘。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章