您的位置:首页 > 编程语言 > PHP开发

ThinkPHP表单令牌

2014-03-09 17:37 176 查看
如果不设置表单令牌,很容易导致CSRF(跨站请求伪造)、跨站提交表单。

表单令牌是一种非常实用的技术,它在表单的视图部分生成随机令牌,默认为随机的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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: