使用php和mysql登录/注册系统

Mik*_*ike 9 php mysql login

我想用PHP和mysql创建一个简单的用户登录/注册系统.除了用户登录和退出所需的信息之外,我不需要获取任何信息.我想确保系统安全.

我目前理解它应该如何工作的方式是:

注册

用户输入他们的电子邮件地址和密码以及确认密码

PHP脚本确保密码匹配,并且电子邮件是有效地址,并且不在数据库中.

它会将密码和随机盐一起散列,并将盐和散列密码存储在数据库中.(php的md5功能是否适用于此?我不太确定这部分是如何工作的.)

将电子邮件确认代码存储在数据库中,并将给定的电子邮件地址发送回包含该代码的网站以进行验证?

登录

用户输入他们的电子邮件地址和密码

服务器在数据库中查找电子邮件并检索salt.然后使用用户刚刚提供的密码对salt进行哈希处理,以查看它是否与数据库中的密码相匹配.

登录后如何使会话保持不变.有PHP会话?一块饼干?什么应该存储在cookie中以便在访问之间记住用户?

我基本上只想验证我所描述的过程是一种准确而安全的用户注册/登录方式.另外,什么是一些有更多信息的好教程.

cas*_*nca 5

php的md5功能适合这个吗?

MD5不再被认为是安全的; 考虑使用PHP的新内置密码散列和bcrypt算法,该算法具有可变的计算复杂性:PHPpassword_hash()password_verify().

登录后如何使会话保持不变.用php会话?一块饼干?什么应该存储在cookie中以便在访问之间记住用户?

理想情况下,您将使用PHP会话在单次访问期间维护状态,如果您希望"记住我的登录"选项,您将使用包含足够信息的cookie来验证返回用户并重新启动新会话.2004年有一篇关于登录cookie的最佳实践的好文章:持久登录Cookie最佳实践.您可能还对更现代(2015)的安全实施"记住我"复选框的解决方案感兴趣.

除此之外,我认为你描述的一切都很好.