09.表单伪造和 CSRF 保护

学习要点:
1.表单伪造
本节课我们来开始学习表单伪造和 CSRF 保护的功能。
一.表单伪造
1. 之前一直用的 GET 请求方式,而表单可以实现 POST 方式,我们来实验下:
2. 先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由;
public function form()
{
return view('form');
}
//表单页
Route::get('task/form', 'TaskController@form');
//接受表单数据
Route::any('task/getform', function () {
return \Illuminate\Support\Facades\Request::method();
});
3. 表单页以 post 发送,路由也使用 post 接受,以下表单提交会出现 419 错误;
<form action="/task/getform" method="post">
用户名:<input type="text" name="user">
<button type="submit">提交</button>
</form>
4. 这是为了避免被跨站请求伪造攻击,框架提供了 CSRF 令牌保护,请求时验证;
<input type="hidden" name="_token" value="{{csrf_token()}}">
5. 表单可以实现 POST 提交方式,那其它提交方式该如何实现呢?可以采用伪造技术;
<input type="hidden" name="_method" value="PUT">
6. 对于 CSRF 令牌保护和表单伪造提交方式,也支持快捷方式的声明,如下:
@csrf
@method('PUT')
7. 如果我们想让某些 URL 关闭 csrf 验证,可以设置 csrf 白名单;
8. 白名单具体设置位置在:中间件目录下的 VerifyCsrfToken.php 文件;
9. 当然,不建议直接注释掉这个验证 csrf 功能的中间件;
protected $except = [
//
'api/*',
];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值