网站似乎在没有向服务器发送密码的情况下登录用户;这是怎么回事
website seemingly logs users in without sending the password to the server; how does this work?
在恒星网站常见问题解答(https://www.stellar.org/faq/#_Why_does_my_client_log_me_out_on_refresh_)上面写着以下
您的密码永远不会发送到我们的服务器:相反,它会在您当前的浏览器中使用窗口解密您的密钥。那样我们就永远无法接触到你的恒星。我们选择了不要将此密码存储在本地,这样它就不会写入您的本地磁盘(我们可以根据用户需求添加在本地缓存密码的能力)。
这究竟是怎么回事?通常的工作流程是将密码发送到服务器,然后服务器对其进行哈希处理,并将其与存储在用户数据库中的哈希进行比较。我看不出只有在客户端才能做到这一点(安全)。。。
我拍一张照片,注册过程中的工作流程是这样的:
- 我输入密码并提交表格
- 这会向服务器发送一个获取KEY的请求
- 密钥返回,并在客户端上使用密码进行加密
- 加密密钥被发送到服务器
- 加密密钥存储在数据库中
登录期间:
- 我输入我的凭据并提交表格
- 这会向服务器发送一个请求以获取我的KEY
- KEY返回并在客户端上使用密码进行解密
- 大概在这一点上,某种"授权"消息或信号以某种方式被发送回服务器,甚至可能是未加密的密钥
你问这是否安全,但事实并非如此。他们(在他们的常见问题解答中)特别提到了为什么他们不能帮助你检索密码,它确实保护了你的密码,但不能保护你的帐户。
任何有权访问数据包嗅探器的人都可以获得加密的密钥,根据加密级别的不同,可能会将其打开。考虑到所有加密和解密代码都已传递给客户端,以便在注册或登录期间执行,我相信,伪造返回服务器验证登录的加密数据是一个笑话。
但至少这是可以想象的。
浏览器总是掌握在敌人手中!
相关文章:
- (Ajax)在不重新加载内容的情况下登录页面url
- 如何在没有登录按钮的情况下初始化谷歌登录
- 如何在用户使用护照登录的情况下测试帆.js控制器.js
- 检测脸书用户是否在没有弹出窗口的情况下登录
- 如何在没有登录PHP的情况下停止直接访问页面
- 网站似乎在没有向服务器发送密码的情况下登录用户;这是怎么回事
- Firebase身份验证服务-在不登录的情况下从电子邮件中查找uid
- 你可以在没有登录系统的情况下在Meteor中列出用户吗
- 在不刷新页面的情况下触发每个auth登录过程(facebookauth)
- 在不使用数据库的情况下登录网站
- 在没有重新登录的情况下从Parse.com更新数据
- 我可以在某些情况下禁用Facebook登录按钮吗?
- 如何在不刷新页面的情况下使用ajax制作登录系统
- Rails / JS - G+登录按钮只在页面重新加载后在某些情况下工作
- 网站如何在不重新加载页面的情况下检查登录凭据?
- 在没有facebook登录的情况下对facebook用户进行身份验证
- 我可以在不登录的情况下获得纯JavaScript的Facebook墙帖子吗
- 如何在不必连接后端的情况下创建登录和注册页面(ReactJS+Redux)
- 如何在不使用ActiveX控件的情况下从应用程序获取当前登录的用户名
- 是否可以在没有登录流的情况下使用Protractor测试流?