跨站请求伪造 Yii,PHP

Posted

技术标签:

【中文标题】跨站请求伪造 Yii,PHP【英文标题】:Cross-site request forgery Yii ,PHP 【发布时间】:2012-08-14 18:06:00 【问题描述】:

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

【问题讨论】:

【参考方案1】:

我想您需要的只是在您的配置中启用 CSRF 验证并使用 Chtml 进行表单 (Yii Guide)。这是您在配置中需要的:

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于跨站请求伪造 Yii,PHP的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中有效地防止跨站请求伪造 (CSRF)

跨站请求伪造攻击的表单安全性

简述CSRF请求跨站伪造

CSRF(跨站请求伪造)

CSRF跨站请求伪造的安全防护

php代码审计7审计csrf漏洞