【问题标题】:What are standard security features for protecting user session in web application?在 Web 应用程序中保护用户会话的标准安全功能是什么?
【发布时间】:2011-07-26 14:15:35
【问题描述】:

我正在提高 Web 应用程序中用户会话的安全性,但遇到了麻烦。我的安全改进列表中的某些项目会导致用户不时重新登录。这是我的清单,哪些是被广泛接受和使用的?你用的是哪个?

  • 检查用户IP地址(它会因移动互联网连接而改变)编辑:没有合理的方法可以访问用户IP
  • 检查 HTTP_USER_AGENT(某些浏览器,如 IE 和移动设备浏览器在单个会话期间会不时更改它)
  • 每个用户 ID 只允许一个会话(当用户从​​两个位置登录时,他在第一个位置退出)
  • 在每次请求后重新生成会话 ID

还有其他的吗?我的应用程序不会处理过于敏感的数据,但应该在一定程度上受到保护。

【问题讨论】:

    标签: security session


    【解决方案1】:

    检查 HTTP_USER_AGENT(某些浏览器,如 IE 和移动设备浏览器在单个会话期间会不时更改它)

    鉴于 HTTP_USER_AGENT 由攻击者控制,您不能信任它,但您可以将其用作检测用户何时合法登录冒充者登录的信号.IP地址是一个类似的信号。您可能希望查看此类信号并选择对其加权,以便获得可容忍的假阴性水平。

    每个用户 ID 只允许一个会话

    根据你的意思,它可能不是绝对必要的,但如果你打算这样做

    在每次请求后重新生成会话 ID

    那么您在分配新 ID 时确实需要使旧 ID 无效以避免类 1 session fixation vulns :“Web 应用程序在不首先使现有会话 ID 无效的情况下对用户进行身份验证,从而继续使用已经存在的会话 ID与用户关联。”

    在生成 ID 时,请确保您不允许不受信任的输入来限制您可能生成的会话 ID,并确保您的会话 ID 不可预测。否则,您很容易受到类型 2 会话固定攻击:“攻击者能够强制用户使用已知会话 ID,这样,一旦用户进行身份验证,攻击者就可以访问经过身份验证的会话。”

    有关处理会话的其他安全提示,请参阅 https://www.owasp.org/index.php/Session_Management

    【讨论】:

    • 我认为攻击者不可能在没有访问受害计算机或成为其网络的一部分的情况下欺骗 IP 地址...再生:使旧 ID 无效是绝对清楚的
    猜你喜欢
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 2020-02-17
    • 2021-04-18
    相关资源
    最近更新 更多