2011-05-15 253 views

回答

5

数据库将是最好的。会话不起作用,因为会话是特定于浏览器的;如果攻击者在每次尝试之间清除cookie,那么系统永远不会计入多次失败。如果你真的不想使用数据库,临时文件可以工作,但这种事情实际上是数据库的用途。

0

取决于你想保留这些信息的时间。如果它仅在有限的时间段内有用,请将其保存在会话数据中。如果您需要存储更多的时间使用文件(或数据库)。 但请记住,在他正确执行登录之前,用户不是用户,因此应至少保存ip地址以识别此类登录尝试。

1

我建议如下:

  1. 对于即时跟踪,我会选择使用一个会话变量。这是一个公平的权衡,而不是使用文件和数据库。但它仅适用于短期跟踪。也就是说,直到用户离开浏览器或直到会话超时。

  2. 为了永久保存日志尝试的记录,最好采用数据库方法。我通常有一个单独的表,跟踪诸如IP,用户ID,日期和时间之类的东西,并添加验证码来加强整个事情。

我相信使用数据库表比使用外部文件更高效,更容易实现。这是因为您必须将文件存储在安全的位置,并设置权限以防止机器人和其他程序读取它们。这是额外的工作。