【发布时间】:2011-03-02 21:10:36
【问题描述】:
我想知道是否有一种直接的方法可以获取用户的会话 cookie 并将其发布到不同站点上的页面以在那里进行处理?
【问题讨论】:
-
如果您使用安全 cookie,其中存储在服务器上的某些秘密的哈希值与实际会话数据相结合(就像您应该这样,这样人们就不会在您不知情的情况下篡改他们的 cookie),这将是不可能的不泄露你的秘密。
我想知道是否有一种直接的方法可以获取用户的会话 cookie 并将其发布到不同站点上的页面以在那里进行处理?
【问题讨论】:
如果不同的站点意味着不同的域甚至子域,则答案是否定的。出于安全原因,其他页面不应读取 cookie。并且由于会话 cookie 仅包含会话 ID,但实际会话数据存储在服务器上,因此将用户 cookie 发布到另一个站点不会让您访问此页面上的用户数据。
【讨论】:
就像 Kau-Boy 说的:
如果不同的站点意味着不同的域甚至子域,答案是否定的。
这是由于 SSH 安全外壳。要做到这一点,您将违背 SSH Secure Shell 为互联网所做的一切(几乎)。您将不得不使用一些低级协议来获取所有私钥等。如果这些是您的服务器,这可能是可能的;但很容易出错,因为这些握手(像大多数人一样)被设计为不会以相同的方式发生两次。
简而言之:非常难,实际成功的机会:低……你还在等什么?
【讨论】:
如果example.com 设置了一个cookie,那么来自example.com 的页面 可以有一些脚本来读取cookie 并将该信息发布到它想要的任何站点。因此,如果 cookie “在您的控制之下”,您可以将其发送到任何地方。然而,一般来说,会话 ID 只在它来自的站点上没有用(如果 cookie 可以泄漏有关会话的信息,它可能是一个应该修复的安全漏洞)。实际上,如果您的页面将会话 cookie 发送给其他网站,这可能是一个安全漏洞。
但是,浏览器安全规则将(或至少应该)阻止您的页面尝试读取其他网站设置的 cookie。
【讨论】:
直接回答,如果它们是不同的域,那么不会。如果它们在同一个域中,则将 cookie 路径设置为“\”,您应该进行设置。无论如何,我认为仍然值得检查一种称为网络信标的技术,看看是否可以调整该方法的任何部分以满足您的需求,如果您要处理不同的域(希望不是)。
【讨论】: