【问题标题】:How to "Forward" a cookie to another page如何将 cookie “转发”到另一个页面
【发布时间】:2011-03-02 21:10:36
【问题描述】:

我想知道是否有一种直接的方法可以获取用户的会话 cookie 并将其发布到不同站点上的页面以在那里进行处理?

【问题讨论】:

  • 如果您使用安全 cookie,其中存储在服务器上的某些秘密的哈希值与实际会话数据相结合(就像您应该这样,这样人们就不会在您不知情的情况下篡改他们的 cookie),这将是不可能的不泄露你的秘密。

标签: c# .net asp.net cookies


【解决方案1】:

如果不同的站点意味着不同的域甚至子域,则答案是否定的。出于安全原因,其他页面不应读取 cookie。并且由于会话 cookie 仅包含会话 ID,但实际会话数据存储在服务器上,因此将用户 cookie 发布到另一个站点不会让您访问此页面上的用户数据。

【讨论】:

    【解决方案2】:

    就像 Kau-Boy 说的:

    如果不同的站点意味着不同的域甚至子域,答案是否定的。

    这是由于 SSH 安全外壳。要做到这一点,您将违背 SSH Secure Shell 为互联网所做的一切(几乎)。您将不得不使用一些低级协议来获取所有私钥等。如果这些是您的服务器,这可能是可能的;但很容易出错,因为这些握手(像大多数人一样)被设计为不会以相同的方式发生两次。

    简而言之:非常难,实际成功的机会:低……你还在等什么?

    【讨论】:

    • -1:这是误导。这与 SSH 无关 - 这只是 cookie 域安全的工作方式,因为 cookie 仅可用于来自设置 cookie 的同一域的页面。
    【解决方案3】:

    如果example.com 设置了一个cookie,那么来自example.com 的页面 可以有一些脚本来读取cookie 并将该信息发布到它想要的任何站点。因此,如果 cookie “在您的控制之下”,您可以将其发送到任何地方。然而,一般来说,会话​​ ID 只在它来自的站点上没有用(如果 cookie 可以泄漏有关会话的信息,它可能是一个应该修复的安全漏洞)。实际上,如果您的页面将会话 cookie 发送给其他网站,这可能是一个安全漏洞。

    但是,浏览器安全规则将(或至少应该)阻止您的页面尝试读取其他网站设置的 cookie。

    【讨论】:

      【解决方案4】:

      直接回答,如果它们是不同的域,那么不会。如果它们在同一个域中,则将 cookie 路径设置为“\”,您应该进行设置。无论如何,我认为仍然值得检查一种称为网络信标的技术,看看是否可以调整该方法的任何部分以满足您的需求,如果您要处理不同的域(希望不是)。

      http://en.wikipedia.org/wiki/Web_bug

      【讨论】:

        【解决方案5】:
        猜你喜欢
        • 2020-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-15
        • 2012-07-24
        • 1970-01-01
        相关资源
        最近更新 更多