这是一个很好的登录系统吗?我能改进吗?

时间:2013-06-16 21:44:35

标签: php javascript mysql login

我目前的系统是这样的:

注册

  1. 用户输入他想要使用的电子邮件。
  2. 用户输入密码。
  3. 用户点击确定,然后通过javascript
  4. 将电子邮件和密码通过电子邮件发送到我的电子邮件帐户
  5. 我查看了我的电子邮件,找到了用户的电子邮件和密码。
  6. 我将电子邮件和密码放入我的mysql数据库。我还在我的数据库中添加了一个随机ID
  7. 登录

    1. 用户输入他的电子邮件和密码。
    2. 如果密码正确,则用户会收到使用javascript发送给他的电子邮件。
    3. 该电子邮件包含一个链接,如http://mywebsite.com/loggedin?id=INSERT_ID_HERE,ID是我在步骤5中的mysql数据库中的随机ID。
    4. 然后网站在PHP中存储一个表示用户已登录的cookie。
    5. 这是一个很好的系统吗?有没有办法让它变得更好?

2 个答案:

答案 0 :(得分:1)

为什么只能存储到数据库时发送电子邮件?仅当您发送确认链接以验证电子邮件地址时才会这样做。这需要从PHP而不是JavaScript完成。

永远不要存储纯文本密码。使用crypt()对其进行哈希处理,以保持资源的运营成本(慢)。

为什么要使用ID与Cookie?为什么JavaScript会在等式中发送电子邮件?将会话哈希存储在cookie中。验证用户名,密码和盐。我还使用UserAgent + IP来杀死任何XSS尝试。并且很高兴有一个会话表只是为了防止MySQL在许多行上进行散列。通过正确的索引编制,您可以拥有任意数量的用户,并且仍然可以快速查找和验证当前​​会话。

有很多方法可以处理用户身份验证和会话。它们都不符合你的。

答案 1 :(得分:0)

您需要执行以下操作:

  1. 有一个HTML表单,用户可以在其中提交详细信息。
  2. 使用php验证输入
  3. 检查数据库中是否已存在电子邮件地址
  4. 将新详细信息插入数据库
  5. 使用php“邮件”功能向用户发送电子邮件确认(不是必要但是很好用)
  6. 6一旦他们登录,将一个php'会话'变量设置为'登录'