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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
php 远程关机操作的代码
Dec 05 PHP
php GeoIP的使用教程
Mar 09 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
基于php-fpm的配置详解
Jun 03 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
php图片缩放实现方法
Feb 20 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
浅谈php的优缺点
Jul 14 PHP
PHP array_reduce()函数的应用解析
Oct 28 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
Snoopy类使用小例子
2008/04/15 PHP
php join函数应用
2011/05/04 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
PHP解决中文乱码
2017/04/28 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
Python中用format函数格式化字符串的用法
2015/04/08 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
通过Python实现一个简单的html页面
2020/05/16 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
介绍一下Linux文件的记录形式
2013/09/29 面试题
迎元旦广播稿
2014/02/22 职场文书
公司董事长岗位职责
2014/06/08 职场文书
售后客服工作职责
2014/06/16 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
基层党支部整改方案
2014/10/25 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
Golang的继承模拟实例
2021/06/30 Golang
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang