安全登录脚本

时间:2011-07-31 12:55:31

标签: php

我正在创建一个安全的登录脚本。脚本的工作方式如下:

1)在页面加载时,会生成会话ID(session_start)

2)用户输入用户名和密码

3)脚本清理用户输入。

4)检查用户名和密码是否在数据库中匹配,

5)如果成功,将生成新的会话ID,并且用户已登录其帐户。

用户登录后,如何从数据库中检索有关用户的所有相关信息?我目前正在会话中存储用户ID(auto_increment字段),并且正在使用此搜索来查找数据库中的相关详细信息?

这安全吗?

2 个答案:

答案 0 :(得分:1)

存在一些潜在问题:

3)您不需要“清理”输入。相反,当您输出到HTML文档时,请使用prepared statements编码输入,例如使用htmlspecialchars

4)您不应将密码存储在数据库中,而是salted hashes

5)您无需生成自己的会话ID。相反,只需将$_SESSION['logged']设置为用户名,然后再对其进行测试。

顺便说一句,自己实施密码管理并不是一个好主意 - 你为什么不use OpenID?此外,请确保使用SSL以防止本地攻击者只是抓取密码和会话ID。

答案 1 :(得分:0)

您的登录表单是否会通过SSL提交?如果没有,那么除非你实现一些客户端HOTP例程,否则密码将以纯文本形式发送。这不安全。