const ALLOWED_ORIGIN = "https://trusted.example";
window.addEventListener("message", (event) => {
if (event.origin !== ALLOWED_ORIGIN) {
return;
}
if (typeof event.data !== "string") {
return;
}
document.querySelector("#message").textContent = event.data;
});
OWASPは、event.originを完全一致で確認し、受信データをコードとして評価しないよう求めています。

WebSocketの受信データをinnerHTMLへ入れると、DOM XSSまたはStored Client XSSになります。
攻撃者がチャットへ投稿
↓
WebSocketサーバーが配信
↓
他の利用者が受信
↓
innerHTMLで描画
↓
XSS
WebSocket自体がXSSを起こすわけではありません。
受信データの描画方法が原因です。
安全な例です。