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

mechazawa | 108 points

I wouldn't even mind ads if most sites weren't malicious with how they serve them. Do not make a new window pop up, do not try to download anything to my computer without my explicit instruction, do not make me click an x to view the content, do not interrupt the content to serve an ad. Why can't they just have a nice little ad on the left and/or right side of the page that doesn't interrupt my intake of their content? Heck, even on the top is fine.

wrigglingworm | a month ago

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 separate rendering pipeline.

hedora | a month ago

We're all complaining and blaming the big corporations for the pitiful state the internet got to be now but seems we are all contributing our little to bring it even lower. Because corporations pay, I know, but we are the ones pulling the trigger.

soco | a month ago

My first question was "Why would someone do this and release it?" but it looks like they answered that question at the end of the README. :(

jedberg | a month ago

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.

josephcsible | a month ago

Mozilla says the following about HTTP 103 Early Hints:

> Note: For compatibility reasons it is recommended to only send HTTP 103 Early Hints responses over HTTP/2 or later, unless the client is known to handle informational responses correctly.

> Most browsers limit support to HTTP/2 or later for this reason.

zzo38computer | a month ago

This makes sense, but I guess adblockers could just start loading the data and not show it to the user?

guitarlimeo | a month ago

Probably too unreliable to use in real life - for example, I suspect many crappy corporate proxies will block HTTP 103 responses as some unknown danger.

thenewnewguy | a month ago

TIL about HTTP 103, that's pretty neat.

It seems pretty easy to mitigate this by always loading the early hints though, as in Firefox should adopt Chrome's approach as described in the README.

kevmo314 | a month ago

Haha. The copyright license is a parody of the MIT license [1]:

> Copyright (c) 2024 Mechazawa

> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software with specific restrictions, provided that the user intends to use the Software explicitly FOR the purposes of evil or advancing evil, including but not limited to:

> Genocide, Wanton Destruction, Fraud, Nuclear/Biological/Chemical Terrorism, Harassment, Prejudice, Slavery, Disfigurement, Brainwashing, Ponzi Schemes and/or the Destruction of Earth itself,

> with this, including without limitation the rights to copy, modify, merge, publish, distribute, sublicense, sell and/or run copies Software or any executable binaries built from the source code.

HN converts single newlines into spaces. The license text on Github [1] has apparently intentionally obstructive newlines within the "paragraphs".

[1] https://github.com/Mechazawa/103-early-anti-adblock/blob/mas...

hn_acker | a month ago

I really wish the pay-with-compute model stuck.

Lending webpages some CPU-cycles (probably to mine crypto) in a controlled and safe way would be a win-win(-win) situation.

Websites won't have to submit to their advertising overlords and still be able to incrementally monetize their content.

Users won't have to deal with the downgraded experience — while sacrificing compute cycles anyway to download and display the awful ads.

Even advertisers would win, as they won't have to deal with content farms trying to fake impressions and clicks.

ahmedfromtunis | a month ago

I think what is needed is rather an adblock detector detector, or something which can trick the detectors into thinking there's no adblock.

gxonatano | a month ago

Just once and for all understand, people who do not want to see ads and you force ads on them, will not come to your site. All you're doing is making the user experience worse and decreasing your site's worth. And people will remember who was so rude to them.

I've been there.

Don't do it.

lakomen | a month ago

> Chrome does not allow adblockers to interact with resources loaded using early hints, nor does it display resources loaded using early hints in the developer console.

I wonder if Brave has these same limitations? Not sure where its Shields JS fits into the architecture.

esbranson | a month ago

SMS is the next big frontier for ads, every few messages with someone you can see a little ad about something related to your conversations. Or if a conversation has gone stale and someone hasn’t replied in several days, inject an ad to wake it back up.

deadbabe | a month ago
[deleted]
| a month ago

If I say whats on my mind after seeing this I will be banned from HN.

shmde | a month ago

My strategy for managing ads is adblock + a mouse with a thumb button configured to CTRL + F4.

If adblock doesn't catch it, my thumb twitch reflex when a popup appears will.

_rm | a month ago

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

skrtskrt | a month ago

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

Tabular-Iceberg | a month ago

Nit: The use of asci diagrams cause formatting problems when viewing on mobile.

failedartifact | a month ago

The freedom fighters will find a way to avoid these ads, just you watch

darepublic | a month ago

Can someone make this into a Wordpress plugin?

terrycody | a month ago

It should be illegal to sabotage adblocking.

ceving | a month ago

does anyone know to make a diagram using text like that in the README?

harrygeez | a month ago

Are people still relying on only browser plugins to de-trash their browsing experience? DNS is your friend. Block the asshats at their media delivery source. DNS Filter, NextDNS, PiHole...

unstatusthequo | a month ago

[dead]

Hetzfogz | a month ago