2011-09-30 23 views

回答

2

一個惡意的用戶/程序可以連接到這個websocket,並且你無能爲力(故事結束)。但是,WebSockets的同源策略應該與XHR非常相似。除非您明確允許,否則其他域上的JavaScript無法訪問域上的WebSocket。所以這意味着如果有人在哪裏重新發布您的內容,他們將不得不使用跨域代理。

+0

「另一個域上的JavaScript無法訪問您的域上的WebSocket。」 - 這實際上是可能的。你只需要檢查'Sec-WebSocket-Origin'頭值。 – pimvdb

+0

@pimvdb完全是我的觀點,兩個特徵的規則幾乎完全相同。使用XHR,您可以使用'Access-Control-Allow-Origin:*'標題。 – rook

+1

爲了闡明,運行在一個不妥協,行爲良好的瀏覽器中的Javascript不會影響Sec-WebSocket-Origin的值,該值包含加載頁面的原始站點的值(允許您的服務器僅允許某些始發點)。但是,如果您將Javascript作爲WebSocket客戶端在Node.js中運行,則可以將原始值設置爲任何想要的值。 CORS安全性是爲了瀏覽器用戶的安全,而不是爲了你的服務器。您需要其他機制來保護您的服務器。 – kanaka