laravel框架中表单请求类型和CSRF防护实例分析


Posted in PHP onNovember 23, 2019

本文实例讲述了laravel框架中表单请求类型和CSRF防护。分享给大家供大家参考,具体如下:

laravel中为我们提供了绑定不同http请求类型的函数。

Route::get('/test', function () {});
Route::post('/test', function () {});
Route::put('/test', function () {});
Route::patch('/test', function () {});
Route::delete('/test', function () {});
Route::options('/test', function () {});

但有些时候,我们通过创建资源控制器,里面的 update() 方法绑定的是 PUT 类型的http请求。

这就需要我们通过表单提交模拟PUT请求。我们可以自已添加一个 _method 的隐藏字段,值为 PUT。

<form action="{{ route('test') }}" method="post">
  <input type="hidden" name="_method" value="PUT">
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

也可以使用laravel为我们提供的 method_field() 方法。

<form action="{{ route('test') }}" method="post">
  {{ method_field('PUT') }}
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

laravel默认会对每个提交请求,进行csrf令牌的验证。为了通过验证,需要在表单中添加 _token 隐藏字段。

<form action="{{ route('test') }}" method="post">
  <input type="hidden" name="_token" value="{{ csrf_token() }}">
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

或者使用 csrf_field() 方法。

<form action="{{ route('test') }}" method="post">
  {{ csrf_field() }}
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
PHP similar_text 字符串的相似性比较函数
May 26 PHP
php中var_export与var_dump的区别分析
Aug 21 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php使用wordwrap格式化文本段落的方法
Mar 17 PHP
php转换颜色为其反色的方法
Apr 27 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
PHP如何开启Opcache功能提升程序处理效率
Apr 27 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 #PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 #PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 #PHP
laravel框架创建授权策略实例分析
Nov 22 #PHP
laravel框架语言包拓展实现方法分析
Nov 22 #PHP
laravel框架邮箱认证实现方法详解
Nov 22 #PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 #PHP
You might like
咖啡的化学
2021/03/03 咖啡文化
一个简单的PHP投票程序源码
2007/03/11 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
php如何获取Http请求
2020/04/30 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
Python制作动态字符图的实例
2019/01/27 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
运动会开幕式解说词
2014/02/05 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技