Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过.net web api 2从客户端进行身份验证-纯文本可见凭据_Javascript_C#_Asp.net_Authentication_Encryption - Fatal编程技术网

Javascript 通过.net web api 2从客户端进行身份验证-纯文本可见凭据

Javascript 通过.net web api 2从客户端进行身份验证-纯文本可见凭据,javascript,c#,asp.net,authentication,encryption,Javascript,C#,Asp.net,Authentication,Encryption,我有一个遗留数据库系统,我无法更改存储(非常简单)散列密码的数据库系统。这不是一个超级敏感的系统,所以我不太关心世界上最强大的安全系统,但是 我有一个客户端模式登录窗口,它接受用户名和密码,然后调用WebAPI方法对数据库进行身份验证。在服务器端代码中,它使用MD5散列密码,并使用该密码匹配SQL数据库上的用户/密码记录 这一切都很好,但我担心chrome中的开发人员工具显示(显然)XHR请求是未加密的,并且它显示,例如,http://localhost:50683/api/mycontroll

我有一个遗留数据库系统,我无法更改存储(非常简单)散列密码的数据库系统。这不是一个超级敏感的系统,所以我不太关心世界上最强大的安全系统,但是

我有一个客户端模式登录窗口,它接受用户名和密码,然后调用WebAPI方法对数据库进行身份验证。在服务器端代码中,它使用MD5散列密码,并使用该密码匹配SQL数据库上的用户/密码记录

这一切都很好,但我担心chrome中的开发人员工具显示(显然)XHR请求是未加密的,并且它显示,例如,
http://localhost:50683/api/mycontroller/Login/?usr=fred&pass=bloggs
。可以说,这很好,因为用户在自己的机器上,只看到他们键入的内容,但当在内部部署时,这将在内部网上,有时用户共享计算机,这样(有足够的知识)就可以查看网络选项卡XHR历史并查看其他用户的密码

作为一个简单的低技术解决方案,我考虑在发送凭据之前在客户端进行一些基本的加密,然后在进行身份验证请求之前在服务器上取消加密/重新加密凭据,但是(你会意识到,我不是专家!)这难道不意味着客户端也必须在普通视图中使用加密盐,从而使其基本上毫无意义吗


在这种情况下,其他系统如何处理来自客户端的凭证混淆?我是不是什么都不担心?我只是不喜欢在我的XHR历史中看到纯文本

我决定在这里使用javascript库:在调用web服务之前散列密码

是的,我意识到这不是非常安全的,但请参考我最初的问题,我说:“这不是一个超级敏感的系统,所以我不太担心世界上最大的安全系统。”


如果我需要更高的安全性,那么我会使用https和/或Oauth或其他任何方式,但我只是想混淆密码,以便员工内部看不到同事的纯文本密码,这对我来说非常有效,也可能对其他人有用。

这可以通过向客户端发送公钥的非对称加密来解决。当然,这对于中间人攻击来说并不安全。请提供更多示例/链接来解释这一点。Artjom?这个问题可以通过服务器证书解决,并且需要客户端应用程序和api之间的HTTPS通信——无需重新发明轮子。我意识到人们正在试图提供帮助,但是,通过不是真正回答问题而是说“你应该这样做……”的评论来建议答案并不总是那么有帮助!