From: Kyle Kelley Date: Fri, 24 Jan 2014 06:17:57 +0000 (-0600) Subject: Handle varying origin name X-Git-Tag: v4.0.0b1~35^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27637a30e19434dc830ff2ea1688b2856be2cab3;p=thirdparty%2Ftornado.git Handle varying origin name --- diff --git a/tornado/websocket.py b/tornado/websocket.py index fc61c2f67..b67a61bd8 100644 --- a/tornado/websocket.py +++ b/tornado/websocket.py @@ -174,7 +174,15 @@ class WebSocketHandler(tornado.web.RequestHandler): def same_origin(self): """Check to see that origin and host match in the headers.""" - origin_header = self.request.headers.get("Origin") + + # The difference between version 8 and 13 is that in 8 the + # client sends a "Sec-Websocket-Origin" header and in 13 it's + # simply "Origin". + if self.request.headers.get("Sec-WebSocket-Version") in ("7", "8"): + origin_header = self.request.headers.get("Sec-Websocket-Origin") + else: + origin_header = self.request.headers.get("Origin") + host = self.request.headers.get("Host") # If no header is provided, assume we can't verify origin