PHP-即使通过_csrf_token也检测到Symfony CSRF攻击
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-即使通过_csrf_token也检测到Symfony CSRF攻击,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1668字,纯文字阅读大概需要3分钟。
内容图文
![PHP-即使通过_csrf_token也检测到Symfony CSRF攻击](/upload/InfoBanner/zyjiaocheng/673/161305d61d3544d48a9b837e04e6c5cf.jpg)
这是我的表格:
<form novalidate action="<?php echo url_for('article/submit') ?>" method="POST">
<?php echo $form['title']->renderRow() ?>
<?php echo $form['content']->renderRow() ?>
<?php echo $form->renderHiddenFields() ?>
<input type="submit" value="Save"/>
</form>
并查看生成的HTML源,实际上正在渲染_csrf_token IS.这是我的动作:
public function executeSubmit(sfWebRequest $request)
{
$this->forward404Unless($request->isMethod('post'));
$request->checkCSRFProtection();
die('submitting post...');
}
错误:
_csrf_token [CSRF attack detected.]
即使在我的行动中,如果我执行var_dump($_ POST);死;我得到:
Array
(
[title] => string(8) "My title"
[content] => string(10) "My Content"
[_csrf_token] => string(32) "<my token here>"
)
因此,csrf令牌肯定可以正确渲染和传递.我究竟做错了什么?
此外,是否在任何地方都有有关checkCSRFProtection()的文档? API的文档除了承认它的存在外没有说其他任何事情.
解决方法:
需要检查的几件事:
(来源:从http://oldforum.symfony-project.org/index.php/t/17867/开始)
确保已在设置中定义了“秘密”:
csrf_secret: ThisIsMySecret # Unique secret to enable CSRF protection or false to disable`
另外,根据我从该表单帖子中收集到的信息,CSRF保护检查会在$this-> form-> isValid()中自动完成,因此如果您不需要调用$request-> checkCSRFProtection(),已经在检查表格是否有效.如果不是,则添加$this-> form-> isValid().
$request-> checkCSRFProtection()似乎也不适用于表格;目的(如果我没错的话)是为了验证用户单击链接时提供的请求.启用CSRF保护后,link_to()会自动将CSRF保护添加到它生成的链接中.因此,基本上,对于表单的CSRF保护与不是源自表单的请求的CSRF保护是不同的.
有关更多详细信息,请参阅此票证:http://trac.symfony-project.org/ticket/7315
可能感兴趣的另一张票:http://trac.symfony-project.org/ticket/5698
内容总结
以上是互联网集市为您收集整理的PHP-即使通过_csrf_token也检测到Symfony CSRF攻击全部内容,希望文章能够帮你解决PHP-即使通过_csrf_token也检测到Symfony CSRF攻击所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。