我是PHP开发新手。我没有任何同事讨论PHP。所以我会在这里发布我的问题。这个PHP脚本是否安全?
我已成功地为我自己做的登录脚本,女巫看起来很像本网站上的脚本:http://www.phpeasystep.com/phptu/6.html
我的问题是。这是一种安全的方法吗?有没有关于PHP登录脚本的很好的教程?在会话中存储信息的方法有什么问题吗?
我是PHP开发新手。我没有任何同事讨论PHP。所以我会在这里发布我的问题。这个PHP脚本是否安全?
我已成功地为我自己做的登录脚本,女巫看起来很像本网站上的脚本:http://www.phpeasystep.com/phptu/6.html
我的问题是。这是一种安全的方法吗?有没有关于PHP登录脚本的很好的教程?在会话中存储信息的方法有什么问题吗?
您发布的教程中存在一些问题。
如果您想要做的正确,请阅读The definitive guide to form-based website authentication并实施它的建议。
它不是安全可言:
SHA1不被认为是安全的一个登记表,更喜欢sha256或sha512 – 2012-04-19 08:13:17
是的。刚刚编辑:-) – Stefan 2012-04-19 08:14:11
看看这个脚本,我会说只要你实现了带斜杠功能并使用哈希算法(SHA256)来存储密码,那么你会走很长的路线。你可以通过向hash添加一个salt来进一步扩展它,如果有人曾经攻击过你的数据库并且执行了SELECT * FROM Password WHERE Password ='HASH',这将保护你。这将返回所有用户名并允许攻击者尝试使用这些凭据登录。 SQL Injections和XSS是网站上常见的攻击类型,可以通过登录系统执行。我会建议阅读他们。
其他资源:
http://www.webstockbox.com/php/7-tutorials-on-how-to-create-a-php-login-system/
号它更安全不存储密码原样。你最好散列密码(即使用md5())并将散列存储在数据库中。要进行登录,您需要从表单发送密码,对其进行散列并与存储在数据库中的散列进行比较。
我会建议使用比md5更安全的东西。即SHA256 – 2012-04-19 08:25:05
绝对不安全,它将密码存储为文本,无需散列。检查密码哈希(至少sha256,从不md5或sha1)和盐渍 哈希将编码密码,以便在成功的数据库攻击的情况下没有人能够获得密码。 Salting会增加一些安全性,您只需在每个密码中添加一些字符串并对其进行散列即可。您可以为每个用户和服务器salt使用一些不在键盘上的特殊字符。这将使密码非常安全。 使用PDO和参数进行SQL查询可以使其从SQL注入攻击中更安全。
至于在会话中存储 - 确定,但从不存储密码,密码被插入,散列,并且再也不会使用,至少直到另一次登录。
SHA512散列是盐,如果可能最好的方式,但我发现这个负载和使用PDO,但我不能让一个使用SHA512哈希任何想法回复请
如果你有问题,你应该启动一个新的 – 2012-12-22 00:18:21
我同时加密和密码。这里没有问题。 只是想知道“从数据库中选择 - >在会话中存储”的方法。 PHP新手,不想让门打开:) – hogni89 2012-04-19 08:28:29