【问题标题】:Can a user manipulate cookies?用户可以操纵 cookie 吗?
【发布时间】:2012-12-31 03:22:23
【问题描述】:

我有一个关于将 cookie 用于标准登录目的的问题。假设我的 php 脚本在他每次登录时都会将 cookie 保存到用户计算机中。cookie 值是他在网站上的用户名后面的“Mike”。该用户能否以某种方式在其浏览器中操纵该 cookie 以将值更改为“Admin”,如此突然他就可以访问网站管理?

如果发生这种情况如何解决这种安全风险?

--

另外...如果有人要从我的浏览器中复制 cookie,他会盯着我的计算机屏幕并将 cookie 和值复制到他的计算机中,或者这样的入侵者可以通过 JavaScript 从我的浏览器中窃取 cookie。

这是怎么处理的?

【问题讨论】:

  • 是的。 不要在 cookie 中存储您不想被篡改的信息。您可以使用会话来代替。
  • 正如 Waleed 所说,是的,可以做到。这是trivially easy。您可以考虑使用会话来存储信息。

标签: php cookies


【解决方案1】:

是的,这是一个安全问题,它延伸到客户提供的任何信息。

Cookie 存储在用户的机器上。它们可以以任何方式进行修改。事实上,cookie 可以即时创建并通过多个实用程序发送以发出 HTTP 请求。这甚至不是浏览器的问题。

永远不要相信来自客户端的任何数据。

【讨论】:

    【解决方案2】:

    是的,如果 cookie 存储在他们的计算机上,用户可以对其进行操作。 使用session

    【讨论】:

      【解决方案3】:

      “会话”是连接相关信息的服务器端存储,通过来回传递的变量链接到用户,通常是 cookie,但从逻辑上讲,如果您的客户端和服务器可以处理。

      此“会话”通常由客户端和服务器都知道的整数表示。

      问题是,如果另一个客户端在服务器上打开了会话,我们(作为客户端)可以通过将给定的 id 替换为随机 id 直到找到一个来“劫持”这个会话。服务器现在会相信我们实际上是另一个用途,并且可以让我们访问他们的私人信息。

      因此,我们有“钥匙”。密钥是唯一的,通常是字母数字的代码,在与服务器的每个请求-响应对上都会更改,以确保只有拥有最新密钥的人才能获得访问权限。

      【讨论】:

      • 但是会话对服务器资源有开销
      【解决方案4】:

      他们可以操纵、编辑、修改、创建和删除 cookie。

      您应该只存储您在服务器上使用的哈希密钥,以便在数据库中查找任何应该安全的内容。

      【讨论】:

        【解决方案5】:

        是的,用户可以操纵 cookie。处理它的最佳方法是不要以这样的方式存储用户凭据,以便他们可以通过更改用户名来获得管理员访问权限。

        如何做到这一点的细节非常深入,但一个好的开始是只存储用户的会话标识符。这有其自身的问题,但不会让人们如此轻易地破坏事物。

        【讨论】:

          【解决方案6】:

          Cookies 是客户端,这意味着它们可以被客户端读取、写入和删除。 cookie 管理器插件可以更轻松地更改 cookie 值。

          http://www.ehow.com/how_7149468_edit-cookies-computer.html

          【讨论】:

            【解决方案7】:

            是的,用户只需转到所有流行浏览器都提供的烹饪选项即可轻松操作 cookie

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-11-10
              • 1970-01-01
              • 2013-01-20
              • 1970-01-01
              • 2020-05-21
              • 1970-01-01
              相关资源
              最近更新 更多