我当时在考虑编写自己的身份验证脚本,但对安全性知之甚少。
从我阅读的文章来看,它似乎通常涉及用盐对密码进行哈希处理并将其存储在数据库中。然后,当用户请求登录时,将对密码进行哈希处理并将其与数据库进行比较。如果匹配,则用户数据存储在$ _SESSION中。
但是,我不知道这是否安全。我读了一些有关在数据库中存储 session key 的内容,但是我不确定它是如何工作的或如何实现的。
有人可以解释如何实现安全身份验证吗?
另外,对于我可以合并的PHP身份验证库,有什么建议很容易学习,而不是自己编写?
最佳答案
检查this answer here。
尽管答案是3岁,但建议的phpass库是最新的。
另外,对阿隆·塞德霍尔姆(Aron Cederholm)+1。密码安全性是一门广泛的主题,您应首先查看StackOverflow此处已讨论的相关问题,以便您更加熟悉安全性的主题和最佳实践。
尽管我喜欢框架(Symfony,Zend等),因为它们通常实现这些良好实践,但仅使用它们并不能使您成为一名优秀的程序员。您必须学习其内部运作方式。我总是向程序员致敬地编码自己的安全认证机制(只要他们不在真正需要强大安全性的实时站点中实现),这是最好的方式,因为这是学习和理解主题内幕的最佳方式。总是从现有的实现开始,然后以创建您自己的代码库为例。