繁体   English   中英

CSRF表格-您可以更改令牌吗?

[英]CSRF Forms - You can change the token?

只是想问一个关于带有CSRF令牌的PHP和HTML表单的一般问题,因此您生成一个随机令牌并将其存储在PHP的会话变量中,并以HTML表单的隐藏字段输出。

但是,如果在这种情况下,我的意思是正确的:

  • 1个名为Bob的人正在查看secureform.php页面
  • 同一个人查看badform.php页面

如果Bob转到badform.php页面并生成了令牌,然后他们转到secureform.php并从secureform.php获取令牌, badform.php通过inspect元素将其放入badform.php并提交,就在那里一种绕过CSRF的方法正确吗?

我可以就此是否有效以及如何防止此类情况获得一些反馈吗? 如果有道理,如果没有让我知道,谢谢!

Bob可能正在做您不想要的事情,但这不是CSRF令牌要防止的事情。

同一场景世界的跨站点请求伪造版本是其他人(称为Eve),诱使Bob提交了badform.php 由于Eve控制了表单的内容,但是Bob随同会话cookie或其他身份验证信息一起提交了表单,因此Eve可以执行只有Bob有权执行的操作。

但是,如果表单需要额外的CSRF令牌,则Eve无法访问此令牌 ,因此当他们诱骗Bob提交表单时,该表单将被拒绝。 Eve能够验证表单的唯一方法是诱骗Bob从secureform.php复制有效令牌,这比诱使他们提交表单要困难得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM