Laravel中CSRF攻击

一、CSRF攻击

1、什么是CSRF 攻击?

CSRF是跨站请求伪装(Cross-site request forgery)的英文缩写:
Laravel框架中避免CSRF攻击很简单:Laravel自动为每个用户Session生成了一个CSRF Token,该Token可用于验证登录用户和发起请求者是否是同一人,如不是则请求失败。(原理和验证码是一致的。)
Laravel提供了一个全局帮助函数csrf_token来获取Token值,因此只需在视图提交表单中添加如下HTML代码即可在请求中带上Token:

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

2、Laravel中如何避免CSRF攻击

案例:通过案例实现csrf的机制验证
1、创建两个路由,一个用于展示表单(get),另外处理请求(post)
/showtable 展示表单 get
/posttable 提交表单 post
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述
说明Laravel框架默认是开启了csrf认证的。
修改showtable.blade.php里的代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明这个token验证是成功了,所以跨站的没办法验证通过,只能在当前站点访问。
除了csrf_token()还有一种方法csrf_field(),前者表示直接输出token值,后者表示直接输出整个隐藏域的input框;
如下:
在这里插入图片描述
一般在视图里用csrf_field即可,大部分的时候在javascript代码片段中(特别是在做ajax异步提交的时候)可以考虑用csrf_token。

3、从CSRF验证中排除例外路由

并不是所有请求都需要避免CSRF攻击,比如去第三方API获取数据的请求。
可以通过VerifyCsrfToken(app/Http/Middleware/VerifyCsrfToken.php)中间件将要排除的请求URL添加到$except属性数组中:
在这里插入图片描述

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值