2
我设置了CSRF保护选项设置为TRUE,并使用form_open()。隐藏的输入显示成功。但是,如果我提交表单,然后按“返回”并再次提交,它允许表单再次提交! codeigniter设置有问题吗,还是应该是这样?CodeIgniter的CSRF保护不会阻止多个表单提交吗?
现在,我发现自己是执行,检查与会话变量隐藏后输入自己的代币系统。我觉得现在我自己也在实施CSRF。如果我按照自己的方式行事,是否还需要CI的实施?
不知道我理解你100%。即使使用重定向,我也可以使用浏览器的历史记录返回两页而不是一页,回到原始页面。从那里我可以再次提交,而目前的CSRF实施并没有阻止这种情况的发生。所以我又回到了原来的问题。我错过了什么吗? – 2013-02-27 20:20:11
后退按钮的使用不是跨站请求伪造所以回答你的问题“是否CodeIgniter的CSRF保护不能防止多表单提交?”是否,因为点击后退按钮不是CSRF。您正在使用会话或flashdata来帮助您正确的轨道,并且您也必须在CI,Cake或Yii或Laravel中尽我所能完成此操作。关于如何以及何时启用/禁用对表单的访问的标准可能因表单而异,所以我不会期望这将在IMO的框架中。 – dasper 2013-02-27 22:19:05
是的,这是有道理的,谢谢。如果我走这条路,使用会话(是这样的:http://stackoverflow.com/a/4614123/371699),是仍然存在任何需要使用CodeIgniter的内建CSRF保护?当然,这条路线也可以防止任何没有正确标记的请求? – 2013-02-28 15:45:55