tod*_*daf 4 php security csrf file-get-contents
为每个会话在表单上使用令牌的 CSRF 预防方法是一种流行的方法。但是,如果file_get_contentsPHP 可以获取跨域文件表单的内容,我不明白这种令牌方式如何保护--> 它可以获取表单上的令牌并使用它。
那么这种令牌方式是如何工作的呢?
如果我很好地理解了您的问题,那么您正在想象一个可能的漏洞利用:
攻击者的 PHP 脚本将执行 afile_get_contents从他试图利用的目标站点下载表单(HTML),并从下载的 HTML 中提取 CSRF 令牌,并将此 CSRF 令牌添加到呈现给用户的假表单中。
毫无戒心的用户将提交表单,并在此用户会话的上下文中在目标站点中执行意外请求。
目标站点的 CSRF 检查将通过,因为我们的请求中有一个有效的 CSRF 令牌
但是等等......我们有一个有效的令牌吗?我们真的吗!如果目标站点以正确的方式实施 CSRF 检查,则不会。
会话是这里的关键。当您执行file_get_contents从目标站点下载表单时,请求在其自己的会话上下文中执行,该file_get_contents进程是那里的客户端,并且为该请求生成的 CSRF 令牌将(必须)仅在以下上下文中有效那个特定的会议。稍后,当目标用户提交您的虚假表单时,该请求在该用户会话的上下文中执行,而该会话与file_get_contents会话不同,因此如果目标站点在一个合适的方式。
这是 OWASP 的一篇好文章,可以了解更多关于推荐的Synchronizer Token Pattern 以防止 CSRF
| 归档时间: |
|
| 查看次数: |
1810 次 |
| 最近记录: |