如何确保密码不被客户端读取?
我需要将服务器上的用户名和密码传递给我的网页聊天客户端javascript函数。 当我在javascript函数中通过我的php代码发送用户名密码时,它对于有害的源代码中的用户是可读的。
请分享您的解决方案。
我从客户端的服务器A获取用户名密码,然后将这些凭证提交给一个javascript函数,然后再连接到另一个服务器B.它就像Facebook和Gmail聊天工作,但他们做什么来将他们的用户凭据传递给他们的JavaScript客户端连接到聊天服务器没有提到网络上的任何地方,希望这解释更好。
我向你保证这不是facebook和gtalk的做法。 通常他们处理支持第三方API开发(OAuth)的协议,该协议允许用户授予或拒绝应用程序使用其帐户。 客户端应用程序从来不知道用户的凭据。 这就是为什么OAuth很受欢迎。
这里有几种选择,但我认为基于声明的身份验证是最好的方法。 基本上服务器A用于认证客户端并在系统中修饰其角色。 这通过HTTPS作为加密的cookie提供,以防止火羊袭击。 一旦在客户端上,服务器B可以询问该cookie以获得用户有权在服务器B上执行的角色,如果加密,则服务器B必须知道如何解密cookie。 根据您的技术堆栈,有几个库可以支持这一点。 同样重要的是要注意,任何时候cookie传输(或任何安全令牌)都必须通过HTTPS发送,否则可能会在不安全的无线网络上拦截有效载荷。
编辑:根据我对这个问题的评论,如果你使用XMPP,那么你可能会发现通过HTTPS和XMPP库进行简单验证就足够了。
不要在Javascript中进行验证 - 在您的PHP代码中进行验证。
很难说出你的目标是什么,但看起来你想限制客户端能够执行远程操作的方式。
您可以尝试让客户端向服务器请求授权密钥,并让服务器在特定条件下接受密钥,而不是发送用户名和密码。
然后,您可以通过以下方式限制密钥的使用:
您应该始终假设客户端操作可能被欺骗。
如果我正确地理解了这个问题,这些SO问题可能试图做类似的事情。
上一篇: How to secure a password from being readable at the client?
下一篇: What is the difference between XMPP server and XMPP libraries?