我有一个遗留的数据库系统,我不能改变它存储(非常简单)哈希密码。这不是一个超级敏感的系统,所以我并不太担心世界上最伟大的安全系统,然而……
我有一个客户端模式登录窗口,它接受用户名和密码,然后调用Web Api方法对数据库进行身份验证。在服务器端代码中,它使用MD5来散列密码,并使用它来匹配数据库中的user/pass记录。
一切都很好,但我担心chrome中的开发人员工具显示(显然) XHR请求是未加密的,并且它显示,例如,http://localhost:50683/api/mycontroller/Login/?usr=fred&pass=bloggs。有人可能会说,这很好,因为用户在自己的机器上,只能看到他们输入的内容,但当在内部部署时,这将在intranet上,有时用户共享计算机,因此一个(有足够知识的)用户可以查看网络选项卡XHR历史记录并查看另一个用户的密码。
作为一种简单的低技术变通方法,我想在发送凭据之前在客户端进行一些基本的加密,然后在进行身份验证请求之前在服务器上对它们进行解密/重新加密(您会意识到,我不是专家!)这不是意味着在客户端也必须将加密盐放在普通视图中,从而使其在很大程度上毫无意义吗?
在这种情况下,其他系统如何处理混淆来自客户端的凭据?我是不是什么都不担心呢?我只是不喜欢在我的XHR历史中看到纯文本!
发布于 2015-09-28 17:12:25
我决定在这里使用javascript库:http://pajhome.org.uk/crypt/md5/在调用web服务之前散列密码。
是的,我意识到这不是非常安全的,但请参考我最初的问题,我说:“这不是一个超级敏感的系统,所以我不太担心世界上最伟大的安全系统”。
如果我需要更多的安全性,那么我会考虑https和/或Oauth或其他任何东西,但仅仅是为了混淆密码,以便内部员工看不到同事的纯文本密码,这对我来说真的很好用,可能对其他人也有用。
https://stackoverflow.com/questions/32778098
复制相似问题