我想到了一个没有SSL的认证系统似乎相当安全.我忽略了重要的事情吗?
>用户点击登录页面
>服务器生成用于传输的盐(t-salt)并将其存储在会话中
>服务器将t-salt作为加载的登录页面的一部分发送给用户
>用户输入用户名和密码并点击提交
>浏览器MD5加密密码和t-salt
>浏览器将用户名和MD5(密码t-salt)发送到服务器
>服务器使用用户名(*)从数据库中检索密码
>服务器MD5加密从步骤7检索的密码以及步骤2中存储在会话中的t-salt
> Server比较步骤6和步骤8中的两个MD5
>如果它们相同,则登录成功通过验证
>服务器从会话中删除t-salt(在步骤2中添加)以防止潜在的重放攻击
*请注意,步骤7中检索的密码不能单向加密(通常的做法),以便步骤8工作.但是,双向加密系统仍可用于在数据库级别保护密码. (嘿,这带来了允许更加用户友好的密码恢复过程的附带好处.)
除了上面的说明,这个计划的优点和缺点是什么?
解决方法:
你发送t-salt和哈希算法algorythm.计算哈希中的密码不会花费很长时间.
你应该在我看来重新考虑SSL.
标签:php,mysql,database,security
来源: https://codeday.me/bug/20190711/1437373.html