跨域会话和web套接字



我在一个网站上工作,将使用HTML5套接字与其他服务器通信。届时我们的用户将登录,我无法在其他服务器上编码。我在服务器端使用PHP。我不知道其他服务器是否有PHP。客户说PKI是一个解决方案。因此,如果用户登录我们的服务器,然后我开始他们的通信HTML5套接字到其他服务器发送和接收数据。那么其他服务器如何对它们进行身份验证呢?我还认为我可以使用HTML5套接字发送一个用户密钥(如32hash格式),同时其他服务器验证通信,然后开始与该用户一起工作。所以客户说黑客可以通过网络看到数据,所以我认为SSL可以工作。在这种情况下你们有什么建议?请通知

更多细节:

将有我们的用户和另一个服务器之间的连接使用apache thrift(将使用TCP),和场景是,用户将登录到我们的网站,然后我们将通过HTML5socket连接到apache thrift在不同的域,所以在HTML5socket通信,我们将转发userid告诉节俭服务器,哪个用户是这个,所以它是好的。但是有两个问题,

    由于html5套接字位于客户端,因此黑客可以创建自己的套接字并以相同的方式连接到服务器,并使用某人的id,因为这些只是简单的整数。
  1. 如果我们在数据中添加一些东西,那么坐在网络上的黑客就可以得到它,就像一些黑客为会话劫持所做的那样。

所以这就是为什么我不确定是否使用某种SSL或TLS或某种PKI或其他数字证书来解决问题。这就是我在这里问这个问题的原因。

谢谢

SSL无法解决此问题。SSL是关于在客户端和服务器之间创建一个安全链接,它绝对没有来保护服务器免受恶意客户端的攻击。SSL不能解决SQL注入的问题,或者在您的情况下,与用户id相关的不安全直接对象引用。从这个SSL建议来看,你可能从未听说过TamperData,它允许你读取/拦截和修改浏览器生成的所有HTTPS流量(包括flash和JavaScript等组件),BURP更高级,但做同样的事情。

正确的方法是有一个共享的会话存储,您的服务器集合可以访问。客户端被授予一个非常大的随机数或加密随机数,它用作验证令牌,这有点像会话id。此验证令牌用于查找数据存储中的会话状态。公共会话存储可以像一个PHP页面一样简单,它接受验证令牌作为参数,并告诉您它是否链接到一个有效的会话。

让第三方发出回调来验证会话确实是"正确的方式"做到这一点。使用加密技术可以做到这一点,尽管这是对加密技术的误用,因为它引入了攻击的可能性,而回调是绝对的。PHP服务器可以向JavaScript客户机发出由用户id、时间戳和消息身份验证代码组成的HMAC令牌。棘手的部分是,PHP服务器和任何第三方都必须共享一个秘密,以便验证消息身份验证代码。如果做得好,您可以传输客户端可以传输令牌,第三方可以根据时间戳验证会话没有过期,并且您的服务器根据消息验证码发出令牌(而不是黑客的伪造)。

相关内容

  • 没有找到相关文章

最新更新