W3C home > Mailing lists > Public > whatwg@whatwg.org > July 2012

[whatwg] Security restriction allows content thievery

From: Robert Eisele <robert@xarg.org>
Date: Mon, 16 Jul 2012 00:22:20 +0200
Message-ID: <CAAcXor6EeP_-Ea=26F=CxFvRdoHJhr=RTBe7dBGZpNje48V_Mg@mail.gmail.com>
To: whatwg@whatwg.org
Browsers are very restrictive when one tries to access the contents of
different domains (including the scheme), embedded via framesets. This is
normally a good practice, but I'd suggest to weaken this restriction for
the data: URI schema.

I'm currently building an analysis system like Google Analytics, which gets
embedded into a website via a small JavaScript snippet. When I analyzed the
data, I came across a very interesting trick because I got a lot of
requests (with the data from location.href) where the entire website was
embedded into a data:text/html URI - except that all ads of the page were
replaced. Fortunately, my tracking code has been left without
modifications.

But the scary thing is that this way you can monetize foreign content by
simply embedding it somewhere you can direct traffic to. That's pretty
clever, because the original site owner doesn't notice this abuse due to
the fact that top.location.href isn't readable. Or even worse, he would
never notice it at all when he doesn't sniff the URI with JavaScript,
because image files would have no referrer.

My final approach to convict the abuser is based on the fact, that the
JavaScript was dynamically loaded from my server and that I can write to
location.href. So I added this piece of code:

if (top.location.protocol === 'data:') {
    top.location.href = 'http://example.com/trap/';
}

But even then the referrer will not be passed to the server. So my proposal
is that the data URI schema gets an exception on this security behavior.



Kind Regards

Robert Eisele
http://www.xarg.org/
Received on Sunday, 15 July 2012 22:22:49 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 30 January 2013 18:48:09 GMT