不言不语

您现在的位置是: 首页 >  PHP  >  Laravel

Laravel

Laravel之CSRF

2020-06-26Laravel
Laravel 可以轻松地保护应用程序免受 跨站点请求伪造 (CSRF) 攻击,跨站点请求伪造是一种恶意攻击,它凭借已通过身份验证的用户身份来运行未经过授权的命令。

CSRF 保护


Laravel 可以轻松地保护应用程序免受 跨站点请求伪造 (CSRF) 攻击,跨站点请求伪造是一种恶意攻击,它凭借已通过身份验证的用户身份来运行未经过授权的命令。


Laravel 会自动为每个活跃用户的会话生成一个 CSRF「令牌」。该令牌用于验证经过身份验证的用户是否是向应用程序发出请求的用户。


无论何时,当您在应用程序中定义HTML表单时,都应该在表单中包含一个隐藏的CSRF标记字段,以便CSRF保护中间件可以验证该请求, 您可以使用 @csrf Blade指令来生成令牌字段:


form  表单 添加 @csrf  或者  {{ csrf_field() }}//第一种和第二种

<input type="hidden" name="_token" value={{csrf_token()}}>//第三种

<form method="POST" action="/profile">

    @csrf  

</form>


csrf白名单


排除csrf的验证


URI 添加到 VerifyCsrfToken 中间件中的 $except 属性来排除对这类路由的 CSRF 保护:


protected $except = [

        ‘user‘,

        ‘user/*’

];


表单请求方法


@method(方法名)


{{ method_field(方法名)}}  


<input type="hidden" name="_method" value="patch"> 


文章评论