八、PHP框架Laravel学习笔记——表单伪造和 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(); 
}); 

在这里插入图片描述

  1. 表单页以 post 发送,路由也使用 post 接受,以下表单提交会出现 419 错误;
<form action="/task/getform" method="post"> 用户名:<input type="text" name="user"> <button type="submit">提交</button> 
</form> 

在这里插入图片描述

  1. 这是为了避免被跨站请求伪造攻击,框架提供了 CSRF 令牌保护,请求时验证;
<input type="hidden" name="_token" value="{{csrf_token()}}"> 

在这里插入图片描述

  1. 表单可以实现 POST 提交方式,那其它提交方式该如何实现呢?可以采用伪造技术;
<input type="hidden" name="_method" value="PUT"> 
  1. 对于 CSRF 令牌保护和表单伪造提交方式,也支持快捷方式的声明,如下:
@csrf 
@method('PUT') 
  1. 如果我们想让某些 URL 关闭 csrf 验证,可以设置 csrf 白名单;

  2. 白名单具体设置位置在:中间件目录下的 VerifyCsrfToken.php 文件;
    在这里插入图片描述

  3. 当然,不建议直接注释掉这个验证 csrf 功能的中间件;
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高通的快充协议_高通:后续骁龙旗舰将标配100W快充

高通于昨晚正式推出了Quick Charge 5充电解决方案&#xff0c;经过3年时间的准备&#xff0c;高通这一次在Quick Charge快充的升级可谓重磅&#xff0c;在功率上实现了重大突破&#xff0c;达到了100W。官方数据显示&#xff0c;高通Quick Charge 5的性能较前代平台显著提升&am…

团队作业(六)

团队项目设计文档 1、系统框图 用户对手机进行设置&#xff0c;包括时间和解锁方式轨迹。手机对用户进行闹铃提醒&#xff0c;同时提供解锁方式。手机对数据库发送数据以保存响铃时间&#xff0c;数据库对手机提供响铃时间信息。 系统框图如下&#xff1a;2、系统结构框图 项目…

Chapter7-10_Deep Learning for Question Answering (1/2)

文章目录1 什么是Question Answering(QA)2 按答案分类2.1 答案是一个单词2.2 答案是多个选项2.3 答案是source中的一段话2.4 答案是生成的一段话3 按source分类3.1 source是网页3.2 source是图片或者视频3.3 source是语音3.4 source是视频本文为李弘毅老师【Deep Learning for …

十、PHP框架Laravel学习笔记——数据库配置入门

一&#xff0e;配置数据库 框架支持原生、查询构造器和 Eloquent ORM(关系型对象映射器)来操作数据库&#xff1b; 数据库的配置在 config/database.php&#xff0c;如果是本地可以直接配置.env 文件&#xff1b; 我们通过.env 文件配置数据库连接的相关信息&#xff0c;以提…

selenium firefox驱动_Python3+selenium配置常见报错解决方案

第一个报错问题geckodriver executable needs to be in PATH1.1如果启动浏览器过程中报如下错误&#xff1a;Traceback (most recent call last):File "", line 1, in <module>File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdr…

drop.delete.trauncat的区别

delete删除数据,保留表结构,可以回滚,如果数据量大,很慢,回滚是因为备份了删除的数据(删除数据时有两个动作,删除和备份) truncate删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对较快(删除数据时只有一个动作:删除) drop 删除数据和表结构,删除速度最快 be…

Chapter7-11_Deep Learning for Question Answering (2/2)

文章目录1 Simple Question: Match & Extract2 Complex Question: Reasoning3 Dialogue QA本文为李弘毅老师【Deep Learning for Question Answering (2/2)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自…

十一、PHP框架Laravel学习笔记——构造器的查询.分块.聚合

一&#xff0e;构造器查询 table()方法引入相应的表&#xff0c;get()方法可以查询当前表的所有数据&#xff1b; //获取全部结果 $users DB::table(users)->get(); first()方法&#xff0c;可以获取到第一条数据&#xff1b; //获取第一条数据 $users DB::table(user…

mac 批量清空文件夹文件_【XSS 聚宝瓶】文件及文件夹批量改名工具

置顶公众号&#xff0c;否则不能及时收到新文章推荐给朋友&#xff0c;让朋友也能收到免费文章在公众号发送函数或应用的关键字&#xff0c;即可免费获取对应教程一、功能说明我们在日常办公的时候&#xff0c;经常会碰到文件名不规范&#xff0c;想要整理很不方便&#xff0c;…

论文阅读 - Beat Tracking by Dynamic Programming

文章目录1 概述2 总体框架3. 计算Onset Strength Envelope4 计算全局的Tempo5 基于动态规划计算beats6 参考文献1 概述 有背景音乐的短视频拼接时&#xff0c;如果两个视频的拼接点刚好在背景音乐的某个节拍点上&#xff0c;那么合成的视频看起来&#xff0c;听起来&#xff0…

十二、PHP框架Laravel学习笔记——构造器的查询表达式

一&#xff0e;select 查询 select()方法可以制定你想要的列&#xff0c;而不是所有列&#xff1b; //设置显示的列&#xff0c;设置列别名 $users DB::table(users)->select(username as name, email)->get(); addSelect()方法&#xff0c;可以在你基础的查询构造器…

iOS中self.xxx 和 _xxx 下划线的区别

property (nonatomic,copy) NSString *propertyName; self.propertyName 是对属性的拜访&#xff1b; _propertyName 是对部分变量的拜访。 其1、property的声明中&#xff0c;编译器正在天生g] property (nonatomic,copy) NSString *propertyName; self.propertyName 是对属性…

python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

通过前面的学习&#xff0c;我们了解了 Pyton 并发编程的特性以及什么是多线程编程。其实除此之外&#xff0c;Python 多线程还有一个很重要的知识点&#xff0c;就是本节要讲的 GIL。 GIL&#xff0c;中文译为全局解释器锁。在讲解 GIL 之前&#xff0c;首先通过一个例子来直观…

Chapter7-12_Controllable Chatbot

文章目录1 Chatbot面临的问题2 控制Chatbot的输出2.1 直接Finetune2.2 输入添加控制特征2.3 只有独白3 展望本文为李弘毅老师【Controllable Chatbot】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老…

(翻译)Google Guava Cache

翻译自Google Guava Cache This Post is a continuation of my series on Google Guava, this time covering Guava Cache. Guava Cache offers more flexibility and power than either a HashMap or ConcurrentHashMap, but is not as heavy as using EHCache or Memcached (…

十三、PHP框架Laravel学习笔记——构造器的 where 派生查询

一&#xff0e;where 派生查询 orWhere()方法&#xff0c;可以通过连缀实现两个或以上的 or 条件查询&#xff1b; //where() orWhere 实现 or 条件查询 $users DB::table(users) ->where(price, >, 95) ->orWhere(gender, 女) ->toSql(); 通过闭包&#xff0…

go int 转char_GO语言实现 一 栈和队列

线性表中&#xff0c;栈和队列是非常重要的两种数据结构&#xff0c;本文将就这两种数据结构进行 golang语言实现参考&#xff1a;go语言中文文档&#xff1a;www.topgoer.com转自&#xff1a;https://www.jianshu.com/p/e8de9ac93cbc一.栈的实现我们需要实现如下几个方法push(…

Chapter7-13_Dialogue State Tracking (as Question Answering)

文章目录1 什么是Dialogue State Tracking2 数据集3 两个挑战4 经典模型本文为李弘毅老师【Dialogue State Tracking (as Question Answering)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老师的PP…

Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上。 Migrate 不要求源和目标节点必须共享存储&#xff0c;当然共享存储也是可以的。 Migrate 前必须满足一个条件&#xff1a;计算节点间需要配置 nova 用户无密码访问。 下面是 Migrate instance 的流程图 …

十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询

一&#xff0e;排序分组 使用 whereColumn()方法实现两个字段相等的查询结果&#xff1b; //判断两个相等的字段&#xff0c;同样支持 orWhereColumn() //支持符号create_time,>, update_time //支持符号支持数组多个字段格式[create_time,>, update_time] $users …