注销哈希值是如何处理的?

5

通常在PHP中,注销哈希值是如何处理的?

在许多网站上,通常有注销哈希值来确认正在注销的用户是否为正确的用户,这通常是如何处理的?

示例

http://domain.com/user/logout/nil4ytwojytjwoytjwy5tw5

nil4ytwojytjwoytjwy5tw5是哈希值。


这里有一些我研究的更新,以便让其他人了解它的工作原理。

我发现这种类型的攻击主要用于零字节图像和iframe等。

如果你已经登录到网站A并且也在浏览网站B,网站B可以放置一个像素标签:

<img src="http://SITE_A.com/logout/" width="1" height="1" style="display:none" />

由于请求来自合法的登录用户,因此该请求得到处理。

通过为重要表单(如转账、注销等)添加验证值,黑客无法获取此值,因此请求将不会被执行!

谢谢您的帮助。

1个回答

3

这是为了防止跨站请求伪造(CSRF)。该值是一个“csrf token”,它是一个存储为会话变量的加密随机数。检查它以确保请求来自同一站点,而不是伪造的攻击者站点。


那么对于常规表单验证哈希来说,没有任何区别吗? - RobertPitt
@RobertPitt不应该这样认为,无论随机值是使用消息摘要函数还是其他方式生成的都没有关系。实际上,它甚至可以是以不同进制表示的哈希值,但看起来并不那么随机,存在很多重复字符... - rook
CSRF与会话劫持有关吗?如果是的话,我已经实施了防止会话劫持的策略!- 你有关于如何进行CSRF攻击的指南吗?这样我就可以更好地理解它了。 - RobertPitt
1
非常感谢您的帮助,我相信谷歌的Chrome手册是一个很好的起点。 - RobertPitt
@RobertPitt,自动防御 CSRF 是不可能的。没有浏览器或 Web 应用程序防火墙能够解决这个问题。 - rook
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接