【问题标题】:Is there a way to check the authenticity of the user, after changing the Session Cookie?更改 Session Cookie 后,有没有办法检查用户的真实性?
【发布时间】:2019-08-13 06:57:16
【问题描述】:

重新创建问题的步骤:

  • 使用管理员凭据登录并复制会话 cookie。
  • 打开另一个浏览器,以另一个用户身份登录,粘贴管理员的会话 cookie。刷新页面。现在,你将 以管理员身份登录。

如何解决这个问题?任何建议都会有很大帮助。

尝试在 drupal 加载 cookie 会话之前使用事件订阅者获取上一个会话,但没有成功。

【问题讨论】:

    标签: session drupal drupal-8 session-hijacking


    【解决方案1】:

    这不是问题,我的意思是,当然,会话劫持是一个非常大的问题 - 但标准的防御是好的。

    这些是我所知道的广为人知/使用的控件:

    • 确保在任何地方都使用 HTTPS,
    • 仅使用安全创建的随机字符串作为 cookie 值,
    • 在所有 cookie 上设置 secure 标志。这将确保它们仅通过 SSL 连接发送,
    • 在每次新的登录尝试时更改会话 cookie。

    默认情况下,Drupal 8 的所有 cookie 都是安全的。

    BigPipe 的无 JS cookie 是个例外,请参阅 https://www.drupal.org/node/2678628 — 但那里没有安全后果。


    我知道一些非常敏感的应用程序也可能存储 - 对于每个会话 - 以下附加信息:

    • SSL 会话 ID
    • HTTP 用户代理
    • 远程 IP 地址

    在我看来,我不会费心检查 HTTP 用户代理或远程 IP 地址。它们不会增加太多安全性,并且会在某些情况下破坏合法使用。从安全角度来看,检查 SSL 会话 ID(SSL 会话绑定)是可以的,但实施起来可能会很痛苦,其他防御措施都很好。


    如果您担心通过 XSS 窃取 Cookie,最好的防御方法是使用标准方法来避免 Web 应用程序中的 XSS 错误。请参阅 OWASP 以获取大量优秀资源。


    您可以在此处找到许多为 Drupal 8 编写安全代码的最佳实践:https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8

    您还可以在 Drupal 上找到关于此的相当古老的讨论:https://www.drupal.org/project/drupal/issues/19845

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-28
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2020-08-29
      • 2014-05-31
      • 2018-10-10
      相关资源
      最近更新 更多