找回密码
 立即注册

QQ登录

只需一步,快速开始

Thinkphp3.2.3 老项目中启用 表单令牌 防止跨站提交

crx349 于 2022-12-13 01:52 [ThinkPHP 3.2] 发表在 [复制链接] [显示全部楼层] [打印] [上一主题] [下一主题]
前提:虽然Tp3.2.3已经是比较久的代码了,但是还是有很多老项目在使用(包括我自己),最近在自己的一个项目里面发现,表单提交有跨站风险,找了下官方说明想加下表单令牌,写的比较含糊,自己试验后功能基本正常可用。结果如下:

1.Common\Conf\config.php
添加:
  1.   'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭
  2.     'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__
  3.     'TOKEN_TYPE' => 'md5', //令牌哈希验证规则 默认为MD5
  4.     'TOKEN_RESET' => true, //令牌验证出错后是否重置令牌 默认为true在这里插入代码片
复制代码



2.在需要的模块目录中的tags.php里面添加:
  1. 'view_filter' => array('Behavior\TokenBuildBehavior'),
复制代码


如:Mobile\Conf\tags.php
如果没有这个文件,直接新建就可以了

3.这时候模块下的表单会自动添加 名称为:__hash__ 的隐藏字段。
QQ截图20221213015142.png
4.验证时,控制器里面添加:
  1. //表单验证
  2.         if(!M('')->autoCheckToken($_REQUEST)){
  3.          
  4.         }
复制代码
进行判断 就可以了

本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://www.xmspace.net/thread-956-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 2022-12-13 01:52:59 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 0 条回复!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • fastadmin 后台界面使用字段数组类型
    • Discuz!x3.5 修改标题高亮颜色
    • Discuz!x3.5 应用中心 下载应用一直下载中
    • 帖子定时显示
    • 论坛辅助审核
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表