| (note: I'm hesitant to post this; any site that actually did this is a site I'm never visiting again) The way to get around adblocking is very long crypto tokens, but not in the subdomain. All that is needed is a front-end proxy that takes each session[1] and rewrites all href/src addresses to point to the proxy. This means all URLs in the page are of the form https;//example.com/proxy/<crypto-token>
# or in the no-cookie case
https://example.com/proxy/<crypto-token>/<session-id>
Rewriting client-side generated URLs is an exercise left for the relevant Javascript framework, but only requires the addition of a simple API in the proxy to convert URLs, or some sort of bypass/whitelist mechanism.The tokens used by the proxy can either be the cyphertext of the actual URL or a synthetic token that references the real URL stored in a DB in the proxy. Such details can are left to the implementation of the proxy. The point is that you have to send the crypto token back to the proxy to get either 1) a redirect of the real URL, 2) the actual content served by the site in question (either from the proxy directly or as a tunnel, or 3) the advertisement/whatever, with the prox6y acting as a live proxy to real ad server, with all the stupid tracking information passed along as extra HTTP headers (in the style of "X-Forwarded-For"). The client only ever sees URLs from the single domain, each obfuscated into a crypto token. No URL would give up any distinguishing characteristic an adblocker can use as a filter. The only costs are the cost of running the proxy, and a bit of latency on each GET request because of the extra hop through the proxy. It might be possible to find heuristics to block in the client's DOM, which is why I have expressed concern in the past[2] about the people who will use WebAssembly and a <canvas> tag to bypass the DOM. These two techniques in combination will make adblocking nearly impossible without first either breaking crypto or solving the halting problem. [1] As defined in the usual manner, either as a cookie or embedded in the URLs the proxy generates. [2] https://news.ycombinator.com/item?id=10211050 |
(of course, the URLs could be camouflaged to look like real ones... eg:
ugh.)