在许多网页上,我们都包含外部脚本。无论是 facebook 之类的按钮、分析或广告系统的客户端代码、外部评论提供者或其他东西。
这些脚本无法访问我的 Ajax 资源,因为一直在检查原始标头。
但是,我有点担心这些脚本可以对我页面上的 websocket 连接做什么。据我所知,在这里,仅在握手期间检查原始标头。
假设我打开一个连接并像这样定义一个 onmessage 处理程序
var ws = new WebSocket("ws://host/resource");
ws.onmessage = function(evt) { my stuff ... }
外部脚本是否无法重新分配 onmessage 处理程序,从而无法访问我的服务器通过 websocket 发送到浏览器的所有内容?喜欢
var oldHandler = ws.onmessage;
ws.onmessage = function(evt) {
externalscript.readMystuffAndDoEvilThings(evt);
oldHandler(evt);
}
我不明白为什么这是不可能的。wss:// 和会话 cookie 或其他东西都不会阻止它。但也许我错过了什么?