前提:虽然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)){
-
- }
复制代码 进行判断 就可以了 |