多くのWebページには、外部スクリプトが含まれています。Facebookのようなボタン、分析や広告システムのクライアントコード、外部のコメントプロバイダーなどです。
常にoriginヘッダーがチェックされるため、これらのスクリプトは私の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やその他のものもそれを妨げることはありません。しかし、多分私は何かが欠けていますか?