跨站请求伪造Yii,PHP

时间:2012-08-18 16:25:23

标签: security web yii csrf

我正在尝试在yii中实现CSRF验证。我已经编写了自己的类,除了我的post变量(对于表单)不包含令牌这一事实外,一切正常。我应该在post变量中自己设置令牌吗? Yii文档声明post变量由每个表单中的隐藏字段设置。是否需要在表格中进一步实施?我知道令牌不存在,因为我通过转储它看到了Post变量。

2 个答案:

答案 0 :(得分:1)

我猜你需要的一切就是在配置中启用CSRF验证,并使用CHtml表示表单(Yii Guide)。这里你需要配置:

'components'=>array(
    'request'=>array(
        'enableCsrfValidation'=>true,
    ),
),

答案 1 :(得分:0)

除了启用CSRF验证之外,您还需要在表单中放置Yii CSRF令牌。我遇到的最简单的方法之一是使用CHtml beginForm,它将其作为生成表单标记的一部分。更多信息:http://www.yiiframework.com/doc/api/1.1/CHtml#beginForm-detail