2012-02-16 5 views
2

間でクッキー漏れ:内容。Firefoxは私がドメイン間ではなく、間違ったクッキーで送信されているのWebSocket要求/応答のペア見ていてFirebugやライブヘッダ、 を使用してFirefoxの9 & 10内でのWebSocket hostdomains

与える2つのURL -

ベースのWebページからhttp://www.mysite.test/mywebapp

のWebSocket URL - ブラウザではなく任意のクッキーが関連するベースページのホスト名のためにクッキーを送信しているようだhttp://stompeserver.mysite.test/stomp

セカンダリホスト名。すなわち、ベースウェブページでロードされたJSESSIONIDクッキーが外部接続にエコーされている。

これはバグですか、予期される動作ですか? WebSocketがどのようにクッキーに反応すると思われるかを私は見たことがありません。

IMOの場合、これはサイトのCookieを外部のWebSocketサービスに公開することで、深刻なセキュリティ違反となる可能性があります。


firefox 10に更新されても問題は解決します。

は、以下の接続

JSESSIONIDとCLIENT_LOCALEクッキーが9443からアプリケーションサーバへ61623 MQサーバーにコピーさを背中合わせに2のやや明確ライブヘッダのトレースです。

---------------------------------------------------------- 
https://myapp.com:9443/server/themes/standard/public/gwt/xxstandard/images/logout-icon.png 

GET https://myapp.com:9443/server/themes/standard/public/gwt/xxstandard/images/logout-icon.png HTTP/1.1 
Host: myapp.com:9443 
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 
Accept: image/png,image/*;q=0.8,*/*;q=0.5 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip, deflate 
Connection: keep-alive 
Referer: https://myapp.com:9443/server/example.htm?gwt.codesvr=127.0.0.1:9997&log_level=INFO 
Cookie: JSESSIONID=0000wCOpgfIsSNOz2lL22O5LOiI:-1; CLIENT_LOCALE=en_US; 
Pragma: no-cache 
Cache-Control: no-cache 

HTTP/1.1 200 OK 
Date: Thu, 16 Feb 2012 19:02:55 GMT 
Content-Type: text/plain 
Last-Modified: Wed, 29 Jun 2011 20:44:11 GMT 
Content-Length: 669 
Content-Language: en-US 
Server: WebSphere Application Server/7.0 
---------------------------------------------------------- 
http://myapp.com:61623/stomp 

GET http://myapp.com:61623/stomp HTTP/1.1 
Host: myapp.com:61623 
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip, deflate 
Proxy-Connection: keep-alive 
Sec-WebSocket-Version: 8 
Sec-WebSocket-Origin: https://myapp.com:9443 
Sec-WebSocket-Key: FToA/HGiVQN3CbGOgNffMA== 
Cookie: JSESSIONID=0000wCOpgfIsSNOz2lL22O5LOiI:-1; CLIENT_LOCALE=en_US; 
Pragma: no-cache 
Cache-Control: no-cache 
Upgrade: websocket 
Connection: Upgrade 

HTTP/1.1 101 Switching Protocols 
Upgrade: WebSocket 
Connection: Upgrade 
Sec-WebSocket-Accept: 5lqrLU4mbPiEasSn4gqOlqWvGgw= 
---------------------------------------------------------- 
+0

パトリックの応答(FirefoxのWS開発者)WSSのURLのホスト名のためにあるべき送信したクッキーを参照してください。あなたが見ている問題を示すサンプルページがありますか? –

+0

申し訳ありませんが、私の仕事のすべては現時点ではlocalhostです。 FF9からFF10にアップグレードすると、クッキーはホスト間で上書きされなくなりました。 – Stevko

+1

FF10であなたの結果を明確にすることができますか(あなたのコメントと編集は矛盾しています)。 FF10で起こっていることで、あなたが誤ってJSESSIONIDをクッキーにセットしていないと仮定した場合、私は間違いなくバグとみなし、Mozillaにバグを報告するべきです。最近のバージョンのChromeとその動作を比較できますか? – kanaka

答えて

2

CORSはWebSocketには適用されません。

WSでは、最初のWSオープニングハンドシェイクで「オリジン」HTTPヘッダーが送信されます。ブラウザでは、このオリジンヘッダーに、WSを開くHTML/JSを元々提供していたサーバーのホスト名が含まれていなければなりません。

WSサーバーは、受け入れ/拒否することができます。

ブラウザ以外のWSクライアントでは、オリジンヘッダーが存在していてもいなくてもかまいません。

Cookies:WS仕様では指定されていません。ここ

http://www.ietf.org/mail-archive/web/hybi/current/msg08017.html

+0

同じ発信元ポリシーとWebソケットの更新をありがとう。この制限は、FFバージョン間で変更されたようです。 – Stevko

関連する問題