laravel中csrf的使用场景
CSRF(Cross-site request forgery),中文名称:跨站请求伪造。
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。
这个主要在路由的文件夹routes中处理的。
laravel中csrf以及在路由的定义的时候都给我们处理了。
在routes/web.php的文件中定义的路由,会进行csrf处理,生成表单会有一个令牌。
在routes/api.php的文件中定义的路由,不会进行csrf处理。
问题:我们有时确实允许用户跨站进行访问,比如支付,第三方API获取数据的请求。
laravel中app/Http/Middleware文件夹为我们提供了中间件的的类,其中VerifyCsrfToken.php文件定义了VerfyCsrfToken这个类,我们只需将不需CSRF验证的路由放入其中即可)。
如图:
具体操作如图: