0

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

会话令牌长度和熵如下

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

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

有人对此有什么建议吗?

4

1 回答 1

0

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

  1. 在每个页面请求中,检查名为“SESSION_TOKEN”的表单变量的值(当然也可以是您自己的命名),如果不存在,则创建 50 个字符的随机字符串,然后在查询字符串或隐藏表单值上将其从页面传递到页面.
  2. 使用 SESSION_TOKEN 作为名为“Session_Data”的数据库表的键,该表将模拟经典的 ASP 会话集合,根据上述令牌保存每个会话的数据,并具有一个存储上次访问时间的字段,以便您可以“过期”数据.

这至少应该给你一个好的开始。当然,另一种方法是切换到 ASP.NET,但您可能已经想到它了。:)

于 2012-07-02T06:11:30.190 回答