一、CSRF攻击
1、什么是CSRF攻击
CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写,
原理图示:
csrf在laravel框架中的使用,就是在客户端form表单中设置一个_token表单域
同时把该表单域的值记录给session,提交表单给服务器后,服务器判断form表单中的_token与session中的_token是否一致,一致就进行正常的后续处理,否则该表单非法并舍弃之。
Laravel提供了一个全局帮助函数csrf_token来获取该Token值,因此只需在视图提交表单中添加如下HTML代码即可在请求中带上Token:
执行route/web.php路由的请求,只要请求方式为post/put/patch,都会执行csrf验证,如果有哪个路由请求不要经过csrf校验,就把该请求地址设置给VerifyCsrfToken 中间件<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
执行route/web.php路由的请求,只要请求方式为post/put/patch,都会执行csrf验证,如果有哪个路由请求不要经过csrf校验,就把该请求地址设置给VerifyCsrfToken 中间件
class VerifyCsrfToken extends BaseVerifier
{
/**
*从CSRF验证中排除的URL
* @var array
*/
protected $except = [
'stripe/*',
];
}
2、CSRF案例
注意:在 laravel中,默认情况下POST请求的路由都