ASP中的会话标识符漏洞问题

时间:2012-07-01 11:09:28

标签: security session asp-classic

我们有一个用经典ASP编写的产品。我们正在通过相同的安全认证。我们无法通过下面提到的标准之一。

  

会话令牌长度和熵如下

     

问题:   会话ID的长度为24个字符,会话标识符本质上不是随机的;它们是可预测的。

     

建议:   会话ID应该更长(至少50个字符)并且本质上是随机的。

有人对此有任何建议吗?

1 个答案:

答案 0 :(得分:0)

不要将Session用于与安全相关的任何事情;使用数据库实现自己的类会话机制。为此,您必须遵循以下步骤:

  1. 在每个页面请求中,检查名为“SESSION_TOKEN”的表单变量的值(或者当然是您自己的命名),如果不存在,则创建50个字符的随机字符串,然后在查询字符串或者作为页面的页面之间传递它隐藏的形式价值。
  2. 使用SESSION_TOKEN作为数据库表的键,称为“Session_Data”,它将模拟经典ASP会话集合,根据上述令牌保存每个会话的数据,并具有存储上次访问时间的字段,以便您可以“过期” “数据。
  3. 这应该至少给你一个良好的开端。当然另一种方法是切换到ASP.NET,但猜测它已经超出了你的想法。 :)