我是PHP开发的新手。而且我没有任何同事与PHP讨论过。所以我在这里发布我的问题。
我已经设法为自己做了一个登录脚本,女巫看起来很像这个网站上的脚本:http://www.phpeasystep.com/phptu/6.html
我的问题是。这是一种安全的方法吗? PHP登录脚本有一个很好的教程吗?在会话中存储信息的方法有问题吗?
答案 0 :(得分:4)
您发布的教程有几个问题。
如果你想这样做,请阅读The definitive guide to form-based website authentication并实施它的建议。
答案 1 :(得分:2)
根本不安全:
答案 2 :(得分:2)
绝对不安全,它将密码存储为文本,而不进行散列。检查密码哈希(至少sha256,从不md5或sha1)和盐渍 哈希将对密码进行编码,以便在成功进行数据库攻击时,没有人能够获取密码。 Salting将添加一些安全性,您只需在每个密码中添加一些字符串并将其哈希。您可以为每个用户提供自定义salt,并为一些不在键盘上的特殊字符提供服务器salt。这将使密码非常安全。 使用PDO和SQL查询参数可以使SQL注入攻击更安全 至于存储在会话中 - 确定,但从不存储密码,密码被插入,散列,并且从未再次使用过,至少在另一次登录之前。
答案 3 :(得分:0)
通过查看该脚本,我会说只要你实现了条带斜杠功能并使用散列算法(SHA256)来存储密码,那么你就会走很长的路线。您可以通过向哈希添加一个盐来进一步扩展这一点,如果有人攻击您的数据库并执行SELECT * FROM Password WHERE Password ='HASH',这将保护您;这将返回所有用户名并允许攻击者尝试使用这些凭据登录。 SQL Injections和XSS是网站上常见的攻击类型,可以通过登录系统执行。我建议你阅读它们。
其他资源:
http://www.webstockbox.com/php/7-tutorials-on-how-to-create-a-php-login-system/
答案 4 :(得分:0)
没有。不按原样存储密码会更安全。您最好使用密码(即使用md5())并在DB中存储哈希值。要进行登录,您需要从表单发送密码,将其哈希并与存储在DB中的哈希进行比较。
答案 5 :(得分:0)
如果可能的话,SHA512哈希是使用salt的最好方法,但是我已经找到了关于这个和使用PDO的负载,但我不能使用sha512哈希的任何想法回复的注册表格