如何确保密码不被客户端读取?

我需要将服务器上的用户名和密码传递给我的网页聊天客户端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代码中进行验证。


很难说出你的目标是什么,但看起来你想限制客户端能够执行远程操作的方式。

您可以尝试让客户端向服务器请求授权密钥,并让服务器在特定条件下接受密钥,而不是发送用户名和密码。

然后,您可以通过以下方式限制密钥的使用:

  • 检查客户端IP地址和用户代理
  • 允许密钥只能使用一次(例如,将其用于数据库中)
  • 允许在生成密钥的时间限制内使用密钥
  • 您应该始终假设客户端操作可能被欺骗。

    如果我正确地理解了这个问题,这些SO问题可能试图做类似的事情。

  • 将不受干扰的数据从Flash应用传递到服务器?
  • 阻止人们攻击Flash游戏基于PHP的高分表的最好方法是什么?
  • 非网络游戏的安全在线高分列表
  • 链接地址: http://www.djcxy.com/p/94141.html

    上一篇: How to secure a password from being readable at the client?

    下一篇: What is the difference between XMPP server and XMPP libraries?