Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CSRF表单-您可以更改令牌吗?_Php_Html_Csrf_Web Inspector - Fatal编程技术网

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

Php CSRF表单-您可以更改令牌吗?,php,html,csrf,web-inspector,Php,Html,Csrf,Web Inspector,我只是想问一个关于使用CSRF令牌的PHP&HTML表单的一般问题,所以您可以生成一个随机令牌,并将其存储在PHP中的session变量中,然后作为HTML表单中的隐藏字段输出 但我说得对吗,如果我们在这件事上: 一个叫Bob的人正在查看secureform.phppage 同一个人查看badform.php页面 如果Bob进入badform.php页面并生成了一个令牌,然后他们进入secureform.php并从secureform.php获取令牌,然后通过inspect元素将其放入bad

我只是想问一个关于使用CSRF令牌的PHP&HTML表单的一般问题,所以您可以生成一个随机令牌,并将其存储在PHP中的session变量中,然后作为HTML表单中的隐藏字段输出

但我说得对吗,如果我们在这件事上:

  • 一个叫Bob的人正在查看
    secureform.php
    page
  • 同一个人查看
    badform.php
    页面
如果Bob进入
badform.php
页面并生成了一个令牌,然后他们进入
secureform.php
并从
secureform.php
获取令牌,然后通过inspect元素将其放入
badform.php
并提交,那么有没有绕过CSRF的方法


我能不能得到一些反馈,看看这是否有效,以及如何防止类似的事情发生?如果有道理,如果不让我知道,谢谢

Bob可能正在做一些你不想做的事情,但CSRF令牌并不打算保护它

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


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

不,你没有绕过CSRF,CSRF旨在防止跨站点请求伪造,使攻击者无法代表用户发送请求。如果Bob复制了令牌,则他希望该请求发生,但攻击者无法获取令牌。应在信息安全中提出此问题,而不是这样。阅读: