Chr*_*ris 8 php laravel laravel-5.1
我正在设置一个socket.io服务器来处理套接字请求.这是在端口1234上运行.这是在laravel 5.1应用程序旁边运行.Laravel正在使用redis来处理会话.
我有很多关于使用socket.io连接laravel的教程,这一切都非常简单.我可以在套接字和laravel应用程序中连接,响应和转发消息.
但是,每个教程都避免了此设置的auth部分.一旦在套接字:1234空间内收到消息,如何在确保请求被授权的同时将该消息转发到laravel.
理想情况下,我只是简单地共享会话,并验证XSRF令牌.由于这两个应用程序位于不同的端口上,因此我无法直接接收会话.
目前我正在使用另一种方法,它涉及以下内容:
它有效,但我觉得它可能是一个安全漏洞,因为我实际上并没有使用_token来验证原点.
我认为你的代码是正确的,也许是唯一的方法.session_id通常存储在cookie中,并且在某些时候必须发送到服务器.由于node和php是不同的语言,因此无法直接共享会话.你总是需要一个像redis,mysql或filesystem这样的中间存储.当然还有一种检索会话的方法.检索会话的关键当然是session_id.
关于保护websockets的一篇有趣帖子:
https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html
他建议的是在会话中添加一个随机生成的密钥,您可以验证何时建立websocket连接.
session_id本身已经是随机的,但是这些session_id通常是长寿命的,因此短暂的随机id可以提高安全性.短命应该尽可能短:让php将它添加到数据库中,一旦在节点中验证连接,将其从数据库中删除,这样就不能再使用它了.
有许多额外的会话验证技术,例如检查浏览器字符串或将会话固定到一个ip地址:
http://phpsec.org/projects/guide/4.html
我不推荐这种类型的检查,因为它们并没有真正增加额外的安全性,只会给最终用户带来麻烦.
最重要的是我认为:
归档时间: |
|
查看次数: |
1311 次 |
最近记录: |