We can't trust the Host header here - the attacker could simply be proxying the TCP traffic from the user's browser, in which case the browser will send a Host header corresponding to the attacker's site (and Tornado's HTTPServer does no validation of the Host header by default).  I'm not sure if we can do any origin validation without an explicit specification of what hostname we expect to be (at least not for HTTP.  HTTPS mostly prevents the class of attack where the Host header is not what we expect it to be).