Live data from Hacker News

Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

github.com

101–110 of 207 posts

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#101

Is this already being exploited by any sites in the wild? If not, then I kind of wish that it would have been privately reported to Mozilla and the major ad blocker developers to give them time to patch it.

I definitely see your perspective here, but it also seems like something that isn't likely to be used. There's already good JS ways of detecting ad blockers that don't require nearly as much work.

To take advantage of this, you'd need to alter your web application so that it'd do a two-stage rendering. Most web apps don't even stream their content (rather they wait until the whole content is ready, whether HTML or JS, and then send the whole thing). Your app needs to first send the HTTP 103 with the stuff to pre-fetch. Then it has to wait while holding the state and content it wants to push to the user.

The longer you're holding that stuff in RAM, the fewer requests you can handle per second. Let's say you can handle 100 simultaneous requests and usually a request takes 10ms. Now you've handled that request and you're holding the response for 500ms to see if they hit the no-adblock-detector before sending the rest of the content. All of your Safari/iPhone users hate your website because every page load takes half a second. Awesome, you've pissed off the richest demographic browsing your website. You're paying more for server resources because you're holding onto state longer instead of getting the response to the user and freeing up that RAM so the requests per second you can handle drops. Ok, maybe you look at user agent and only use this technique for Firefox since that's the only browser it's effective with.

In the demo, the DeferredInvoker basically generates a random string and associates it with a request (Map). Then when a request comes in for the no-adblock-detector, it looks up which request-response-thing is associated with the random string and sends the response to the user. If it doesn't receive a request for a string within a timeout, it'll send the response as adblock-detected. Of course, this only works for a single server since it's an in-memory map.

How do we get it to work in a multi-server environment? Ok, we store "ABCDEF123" in a data store and hold the response until we see the request for "ABCDEF123" on the no-adblock-detector. Do we use listen/notify in PostgreSQL? I mean, at some point we're adding a lot of overhead for these requests. I have to store on my server "ABCDEF123" goes with request/response X and then I have to listen to the database to see if another server has received a request for "ABCDEF123" and that other server needs to do a database write. These can't be database writes that can be batched or deferred because the user is literally seeing the page wait to load on this database write.

It's not impossible to exploit, but it requires real engineering for any company that has horizontally scaled anything to multiple web servers. You can't just drop it in easily. And while we might hate ads and there are concerning things about ads with respect to privacy and many other things, it isn't a security vulnerability. It's certainly interesting, but I can't see a company putting resources into this.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#102
post #43

Earlier quoted context omitted.

But it's not just ads: that's disingenuous by understating the impact. It's the entire tracking, data broker, ad marketplace, surveillance capitalism ecosystem. This ecosystem causes immense harm in global climate, ruins lives, delivers malware, violates privacy, and supports authoritarian overreach. Ads might be fine, a pinch of annoyance. And yes I pay for my content thank you.

This is why EU legislators have made the "cookie law". The site will tell you that they are using ads, and you are free to just leave. the. site. Stop mooching off people's hard work by killing their only source of revenue, ad blockers are immoral

> Stop mooching off people's hard work by killing their only source of revenue, ad blockers are immoral

What hard work? Most of the time it's "content" written by minimum (African) wage "copywriters"*. We are drowned into a deluge of shit, so excuse us when we don't trust anyone.

Also, I believe you have no idea what the "cookie law" is about.

* soon to be replaced with "content" that is LLM generated.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#103
post #85
post #67

Earlier quoted context omitted.

How do Kagi and Apple Maps factor in to your "can't pay for google maps without ads" assessment?

I pay for and use Kagi. Apple Maps uses yelp which makes it useless for actually checking reviews of places. Kagi reviews link to other sources with ads. edit: and I hope you're not implying that all people who don't want ads should buy an iphone just to use an app tied to it? Again, there needs to be fair alternatives to ads.

I didn't realize that you were coming at it from a review angle, I was thinking of the "turn left at Subway" sort of advertising in Google Maps.

I'm not trying to imply anything, I just personally use two ad free map services that you seemed unaware of.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#104

Earlier quoted context omitted.

As far as I know, current ad blockers can't block ads from Widevine (DRM protected) streams, so I guess it's only a matter of time until Chromium team comes up with Widevine for webpages and then it's game over for normal consumers.

If an ad can be rendered on a page or if it uses audio it can be blocked. We have it easy right now with how trivial it has been to block ads, but we could face off against rendering and wiping them in real time if we need to.

Not really. Modern DRM uses Intel ME / AMD / ARM equivalent. These execute code the OS doesn’t have privilege to access.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#105
post #4

Sounds like it might make sense to drop this early hints feature (whatever it is). I wonder how much longer it will be before the next major escalation happens with ad blockers. I can imagine mainstream browsers that fetch unmodified pages and click ads in the background (do subvert pay per click ad business models and make it harder to compute targeting metrics), but then display an ad/tracking-free version in a sep…

As far as I know, current ad blockers can't block ads from Widevine (DRM protected) streams, so I guess it's only a matter of time until Chromium team comes up with Widevine for webpages and then it's game over for normal consumers.

By the time that happens my hope is that we might have the new GPT-5 with personal agents curating information for us.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#106

Anyone know what happened to ethicalads.io? Website has been offline for over a month, but founders/engineers seem to be active on LinkedIn & GitHub still

Website is very much online. Can you share a curl or screenshot of what you see?

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#107
post #103
post #85

Earlier quoted context omitted.

I pay for and use Kagi. Apple Maps uses yelp which makes it useless for actually checking reviews of places. Kagi reviews link to other sources with ads. edit: and I hope you're not implying that all people who don't want ads should buy an iphone just to use an app tied to it? Again, there needs to be fair alternatives to ads.

I didn't realize that you were coming at it from a review angle, I was thinking of the "turn left at Subway" sort of advertising in Google Maps. I'm not trying to imply anything, I just personally use two ad free map services that you seemed unaware of.

I'd say at least 80% of my maps usage is looking for restaurants or coffee shops and checking their reviews. Directions are maybe 20% or less. Apple has come a long way and their maps are good for directions, but not a good fit for the argument that the general public has little access to good alternatives to ad-based maps.

I assume kagi is based on open-street maps, I use kagi but not their maps as I have better alternatives. I really hope Kagi continues to succeed because its a model I believe in, but outside of basic search I suspect they have a ways to go.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#108
post #11

Earlier quoted context omitted.

As far as I know, current ad blockers can't block ads from Widevine (DRM protected) streams, so I guess it's only a matter of time until Chromium team comes up with Widevine for webpages and then it's game over for normal consumers.

While i know its evil, i always wished widevine was an option for creating captchas. Most captcha solutions are defeated by services like 2captcha.net and generally aren't the most privacy respecting.

I'd prefer to see proof-of-work based captchas. I'd much rather give up 10 minutes of CPU time for a token that can be revoked as soon as I actually use it for evil than give up all of my privacy (and two minutes of my personal time) for the privilege of using your annoying website.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#109
post #96

Earlier quoted context omitted.

Doesn't really work out for anyone running on battery.

If done right, this might actually be more energy efficient than having to download and render all those unoptimized ads.

The way it works right now is already efficient. The adblock-enabled browser doesn't spend energy on rendering ads. If the website then blocks the user from the content then the user leaves.

Re: Show HN: Detecting adblock, without JavaScript, by abusing HTTP 103 responses

#110
post #82

If ad blockers go by URLs, why don’t advertisers simply serve ads from the same domain with a path masquerading as content?

They don't trust the websites not to tamper with stuff.

That makes sense, they wouldn’t be able to reliably collect metrics.
Post reply on HN