什么是用于保护Web应用程序中的用户会话的标准安全功能?

时间:2011-07-26 14:15:36

标签: security session

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

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

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

1 个答案:

答案 0 :(得分:1)

  

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

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

  

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

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

  

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

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

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

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