Laravel 对CSRF的处理
CSRF是什么
CSRF(Cross-site request forgery),中文名称:跨站请求伪造。
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。
Laravel框架如何处理CSRF
原理图
定义在routes/web.php文件中的路由,默认就有了csrf验证功能。
定义在在api.php文件中就没有了csrf验证功能。如果接口就不能用csrf验证。
排除指定路由中不进行csrf验证
并不是所有请求都需要避免CSRF攻击,比如去第三方API获取数据的请求。
可以通过在VerifyCsrfToken(app/Http/Middleware/VerifyCsrfToken.php)
中间件中将要排除的请求URL添加到$except属性数组中。