网站 ca证书怎么做,wordpress中文版源码,怎样把网站打包做百度小程序,数据库网站制作转载自 如何设计一个安全的登录流程登录是系统中最重要的一个功能之一#xff0c;登录成功就能拥有系统的使用权利#xff0c;所以设计一个安全的登录流程是十分必要的#xff0c;那在一般登录中需要考虑哪些重要因素呢#xff1f;我们一一列表一下。使用https协议进行传输…转载自 如何设计一个安全的登录流程登录是系统中最重要的一个功能之一登录成功就能拥有系统的使用权利所以设计一个安全的登录流程是十分必要的那在一般登录中需要考虑哪些重要因素呢我们一一列表一下。使用https协议进行传输虽然麻烦但是很强的保护措施。强制用户使用有一定强度且复杂的密码必须要有大小写加数字长度在8位以上杜绝像123456之类的弱密码。密码不要明文保存到数据库CSDN当年使用明文存储密码导致用户密码被完全暴露这个事件影响十分严重。所以造成不要使用明文存储密码要使用像MD5之类的散列算法加密存储加密之前密码同时还要加上一个不固定的salt值一起拼接加密一般md5(md5(password) salt)就可以了这个salt是盐一起加密增加密码的长度也增加了破解的难度盐一般设计为64位随机生成的字符串最好分开存放假如用户信息库被攻击了黑客也拿不到盐的库。不能使用可逆的算法如果可逆那如何保存密钥是个非常棘手的问题一般使用明文加密与数据库中的密文对比就能确定密码正确与否我们不需要知道用户的明文是什么如果用户忘了可以通过重置或者密码保护问题修改密码这也比总明文存储要好一万倍。MD5现在已经不是十分安全了最好使sha256sha512之类安全强度更高的散列加密算法。用户名密码错误不要单方面提示如果密码错误提示用户说密码错误这样攻击者就知道用户名是对的下次攻击密码所以不管是用户名还是密码错误都给出同样的提示用户名或密码错误或者别的不具体的提示的错误都可以。前端禁止用户输入导致sql注入的字符后台也要做sql注入的防护。保存历史密码一段时间没登录的用户再次登录时提示要修改密码才能登录这时新密码不能和历史密码一样苹果就是这么做的。保存每次的登录信息日志如果登录的IP与以往有很大差别要引导用户重置密码方可登录。不要在cookie中保留用户密码如果一定要使用cookie实现自动登录切记不要使用简单的用户名密码MD5保存到cookie要把用户ID、用户名、过期时间、IP、不固定的salt等一起考虑进去这个当然要可逆服务端要进行解密才能难是否用户自动登录有效。另外cookie要设置为http only,这样就不能通过脚本访问cookie保证cookie的安全性。不要让浏览器记住密码虽然记住密码很方便但也不安全所以前端最好做控制。一段时间类的尝试登录失败次数达到某个值要锁定用户登录如失败5次锁定24小时。或者间隔性锁定如失败3次后锁定半小时再失败1次锁定1小时再失败1次锁定24小时。设置会话有效期比如登录后10分钟不操作就失效要重新登录。验证码使用加上干扰线防止计算机能够轻易识别这样也可以防止黑客以程序的方式来尝试登录。手机登录的一般使用短信验证码的控制验证码的时效性即验证码一次有效一分钟内只能发送一次。有必要的要采用单点登陆如果允许用户多处登录的要给用户安全提醒。重置密码最好通过邮箱发送一定时间内生效的重置链接或者手机短信验证码或者两者相结合的方法。像一般的大公司都有设计一个动态密码的东西手机即一切所以也要妥善保管自己的动态加密的APP最好加上指纹或手势。设置用户可以登录的IP即IP白名单。像比如财务系统限制财务人员只能在办公室登录系统。先总结到这没有真正安全的登录机制正所谓道高一尺魔高一丈我们要做到与时俱进。