yii添加csrf验证

yii2X版本的请绕行,这里说的是yii 1.1.14版本。某某公司的老程序当中没有考虑csrf攻击,所以不幸中枪了。(具体地址我就不贴了,说下解决方案)

配置文件当中检查是否已开启csrf

components配置中没看到

‘request’=>array(
‘enableCsrfValidation’ => true,
)

的配置。如果全局开启会影响到其他ajax请求

可以在控制器当中这样写

Yii::app()->request->enableCsrfValidation = true;//开启csrf
Yii::app()->request->csrfTokenName = 'FORM_TOKEN';//表单名称
//以上两句的影响是 $form = $this->beginWidget('CActiveForm')的时候
//会生成一个隐藏的input名字是FORM_TOEKN(值就是csrftoken)
if($_POST) {
    try {
        Yii::app()->request->validateCsrfToken(null);
    } catch (Exception $e) {
        die('The token could not be verified.');
    }
}

资料参考:
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
http://www.crarun.com/article-7.html

Tagged . Bookmark the permalink.

Comments are closed.