iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
0
自我挑戰組

從0開始-30天摸索laravel系列 第 30

DAY30: 補充一下CSRF 保護

  • 分享至 

  • xImage
  •  

Larave中會自帶CSRF保護,但CSRF是什麼呢? 中文是跨站請求偽造(英文:Cross-site request forgery),CSRF是常見的網路攻擊手段,所以我認為還是有必要了解一下 CSRF 到底是什麼,是如何運作的方式,才能了解laravel如此貼心的舉動。

如果我們的網站中帶有一些行為,如下的html
<a href='XXXXXXXXXXXXXXXXXXX/delete?cid=1'>刪除</a>

攻擊者可能藉由某些方式讓人在不知不覺的情況下去執行delete?cid=2

那cid就真的被刪除了,因為看起來也沒什麼不對。(網路上有許多大神的範例,可以上網拜讀一下)

那常見的防禦手段為何?
在HTML頁面表單中加上CSRF token ,
例如在頁面表單中加上一個
<input type="hidden" name="csrftoken" value="隨機碼"/>。

隨機碼是由後端的server產生並記錄在session中,每次都會不同,我們通常都稱這個隨機碼為CSRF Token。
所以來想像一下,當使用者操作行為把表單送到後端時,後端接收端可以驗證name="csrftoken" 與session比對,如果不一致就不執行,如此一來是不是就可以分辨是否為合法的行為,到這裡初階的CSRF 保護就算成功了。

會說是初階是因為CSRF不光是如此而已,只是這個方法算是快速且低成本的。


所以才會在postman那篇強調說 CSRF token千萬不要關閉阿~


上一篇
DAY29: 補一個Middleware吧
下一篇
完賽心得
系列文
從0開始-30天摸索laravel31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言