登录/注册系统与php和mysql

我想使用 PHPMysqL一个简单的用户登录/注册系统.我不需要获取超出用户登录和登出所需的信息.我想确保系统安全.

我现在明白如何运作的方式是:

注册

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

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

它将密码和随机盐一起散列,并将盐和结果散列的密码存储数据库中. (是PHP的md5功能适合这个吗?我不太清楚这个部分如何工作.)

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

登录

用户输入其电子邮件地址和密码.

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

登录后如何使会话持续.用PHP会话?一个cookie?应该存储在cookie中以记住访问之间的用户

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

Is PHP’s md5 function suitable for this?

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

How do I make the session persist after login. With a PHP session? A cookie? What should get stored in the cookie for remembering the user between visits?

理想情况下,您将使用PHP会话在单次访问期间维护状态,如果您想要“记住我的登录”选项,则可以使用包含足够信息的cookie来验证返回的用户并重新启动新会话.有关2004年关于登录Cookie的最佳做法的好文章Persistent Login Cookie Best Practice.您可能也会对securely implementing “remember me” checkboxes的更现代化(2015)解决方案感兴趣.

除了这些,我认为任何你所描述的是好的.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...