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千萬不要關閉阿~