Firefox在Websocket主机域中泄露cookie



在Firefox 9&10使用Firebug和Live Headers,我看到websocket请求/响应对跨域发送,但使用了错误的Cookie:contents。

提供两个url-

基本网页-http://www.mysite.test/mywebapp

Websocket url-http://stompeserver.mysite.test/stomp

浏览器似乎在发送基本页面主机名的cookie,而不是与辅助主机名相关联的任何cookie。即,与基本网页一起加载的JSESSIONID cookie正被回显到外部连接。

这是错误还是预期行为?我从未见过网络套接字对cookie的反应。

IMO,将网站的cookie暴露给外部websocket服务可能是一种非常严重的安全违规行为。


已更新到firefox10,但仍然存在问题。

以下是两个背靠背连接的稍微澄清的Live Headers跟踪

JSESSIONID和CLIENT_LOCALE cookie从9443应用服务器复制到61623 mq服务器。

----------------------------------------------------------
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=
----------------------------------------------------------

同源策略和CORS不适用于WebSockets。

对于WS,在最初的WS打开握手中发送一个"原始"HTTP标头,对于浏览器,该原始标头必须包含最初为打开WS的HTML/JS提供服务的服务器的主机名。

然后,WS服务器可以自由地接受/拒绝。

对于非浏览器WS客户端,原始标头可能存在,也可能不存在,并且可能包含任何内容。

Cookies:它不是由WS规范指定的。请参阅Patrick的回应(Firefox WS开发人员)此处

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

相关内容

  • 没有找到相关文章

最新更新