如何使用相同的帐户限制多个登录而不使用PHP中的数据库?

时间:2013-12-13 08:25:05

标签: php basic-authentication

我正在开发一个网络应用程序,用户应该输入他们的用户名和密码并输入他们的帐户。我需要对应用程序进行以下限制:

  • 从同一个或不同的IP地址限制同一帐户中的多个登录。
  • 从同一IP地址限制登录相同或不同的帐户。

我不想在这里使用任何数据库。那么有没有可能的方法来单独使用PHP?

3 个答案:

答案 0 :(得分:0)

您必须保存用户的某些内容以识别他。例如session_id。如果您不想将其保存在数据库中,则必须将其保存在文件中。

您可以为每个用户创建一个文件,并将sessionID保存在其中。

答案 1 :(得分:0)

您可以将登录人员的数据存储在一个文件中,然后当用户尝试登录时,只需检查文件中的数据

答案 2 :(得分:0)

我知道如何执行此操作的唯一方法是将登录用户会话绑定到其USER-AGENT和IP地址以及用户名。

将USER-AGENT的哈希值以及用户的IP和用户名存储在会话中,每次检查会话以查看用户是否已登录,比较USER-AGENT的哈希值和IP地址以及用户名。当前用户使用会话中的一个,如果不相同,则会破坏会话数据并要求重新登录。

更新:

这种方法主要是防止会话劫持,但是为了阻止具有相同用户名的多个用户,你必须在db字段中存储它们的独特内容。 用户登录用户db表时存储session_id。 在检查用户是否已登录时(在我假设的每个页面请求中)将用户的session_id与一个id db进行比较,如果他们没有破坏会话,则从db中删除session_id并将用户重定向到登录页面。

注意:

如果您不想使用db,则必须在文件中存储username / session_id列表