相关疑难解决方法(0)

为什么WebSockets没有同源策略?为什么我可以连接到ws:// localhost?

我想使用WebSockets为我的应用程序进行进程间通信(Daemon < - > WebGUI和Daemon < - > FatClient等).在测试期间,我尝试通过websocket.org(http://www.websocket.org/echo.html)上的JavaScript WebSocket客户端连接到我本地运行的Web套接字服务器(ws:// localhost:1234 ).

我现在的问题是:
为什么这可能?浏览器中是否没有实现跨源策略(此处:Linux上的FF29)?

我问,因为如果websocket.org是邪恶的,它可能会尝试与我的本地WS服务器通信,并将从localhost接收的每条消息重定向到任何其他服务器:

Local WebSocket Server            Browser            Evil Web Server
at ws://localhost:1234                               at http://evil.tld
        |                            |                       |
        |                            |------[GET /]--------->|
        |                            |<-----[HTML+EvilJS]----|
        |<------[connect ws://..]----|                       |
        |<----[some communication]-->|                       |
        |                            |----[evil forward]---->|
        |                            |                       |

我没有测试整个用例,但是从websocket.org提供的JS连接到ws:// localhost肯定有效.

javascript security websocket

74
推荐指数
3
解决办法
4万
查看次数

标签 统计

javascript ×1

security ×1

websocket ×1