ThinkPHP表单令牌
2014-03-09 17:37
176 查看
如果不设置表单令牌,很容易导致CSRF(跨站请求伪造)、跨站提交表单。
表单令牌是一种非常实用的技术,它在表单的视图部分生成随机令牌,默认为随机的MD5串,存在hidden的input中。在表单数据提交前,将提交的数据与SESSION中存放的令牌进行比对,从而判断是否是跨站提交。
ThinkPHP中开启表单令牌的方式比较简单,在config中进行配置:
'TOKEN_ON' =>TRUE,
'TOKEN_NAME' =>'__hash__',
这时,如果再运行页面,可以看到页面中已经有了随机的令牌:
再用户提交时,进行比对:
if(!$tbAdmin->autoCheckToken($_POST)){
echo "Invalid form input.";
}
上面的tbAdmin是model。
表单令牌是一种非常实用的技术,它在表单的视图部分生成随机令牌,默认为随机的MD5串,存在hidden的input中。在表单数据提交前,将提交的数据与SESSION中存放的令牌进行比对,从而判断是否是跨站提交。
ThinkPHP中开启表单令牌的方式比较简单,在config中进行配置:
'TOKEN_ON' =>TRUE,
'TOKEN_NAME' =>'__hash__',
这时,如果再运行页面,可以看到页面中已经有了随机的令牌:
<input type="hidden" name="__hash__" value="11f6b3285bf71a87811c3dadccb7b166_c6694a7c3a76bbf9ac7bf66a77d87310" /></form>
再用户提交时,进行比对:
if(!$tbAdmin->autoCheckToken($_POST)){
echo "Invalid form input.";
}
上面的tbAdmin是model。
相关文章推荐
- ThinkPHP表单令牌验证功能详细介绍
- ThinkPHP表单令牌验证功能
- ThinkPHP下表单令牌错误与解决方法分析
- thinkphp token表单令牌
- ThinkPHP如何关闭指定页面表单令牌hash
- ThinkPHP第二十二天(表单令牌、相对路径、扩展配置载入、$Think获取系统变量、$_SERVER('HTTP_REFERER')前页地址)
- ThinkPHP下表单令牌错误分析
- thinkphp表单令牌防止重复提交
- thinkphp解决表单令牌问题
- ThinkPhp表单令牌和字段映射
- ThinkPHP 3.2 Token表单令牌
- 关于ThinkPHP下表单令牌错误的相关解决办法
- ThinkPHP 中防止表单重复提交(表单令牌)
- ThinkPHP5表单令牌+表单数据验证验证规则
- ThinkPHP无法自动生成表单令牌问题
- 一个想不到的原因引起的Thinkphp表单令牌验证出错
- ThinkPHP 表单令牌验证功能
- 关于ThinkPHP下表单令牌错误的相关解决办法
- YII实现ThinkPHP的表单令牌
- thinkphp表单令牌错误的解决方法