crx349 发表于 2022-12-13 01:52:59

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

前提:虽然Tp3.2.3已经是比较久的代码了,但是还是有很多老项目在使用(包括我自己),最近在自己的一个项目里面发现,表单提交有跨站风险,找了下官方说明想加下表单令牌,写的比较含糊,自己试验后功能基本正常可用。结果如下:

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


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

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

3.这时候模块下的表单会自动添加 名称为:__hash__ 的隐藏字段。

4.验证时,控制器里面添加:
//表单验证
      if(!M('')->autoCheckToken($_REQUEST)){
         
      }进行判断 就可以了
页: [1]
查看完整版本: Thinkphp3.2.3 老项目中启用 表单令牌 防止跨站提交