Live data from Hacker News

It took a year to ship WebAssembly in Anubis

anubis.techaro.lol

71–80 of 214 posts

Re: It took a year to ship WebAssembly in Anubis

#71
post #36

Anubis is fine if you want to block bots that are bothering you, but I never understood why they don't have robots.txt at the root level too. I happily obey that for my private crawler. I suppose you don't want to duplicate implementations. Fair enough. I guess I should add an Anubis detector so I can just blacklist because that person clearly doesn't want bots.

In this day and age, only good bots, the ones you actually want, obey robots.txt. You obtain no benefit by having a restrictive one.

Re: It took a year to ship WebAssembly in Anubis

#72
post #63

Earlier quoted context omitted.

> Scrapers can't change their strategy? Yes, but you normally don't try to fight all strategies up front, you add stuff on a need-to basis. Currently, lots of people are in the stage of "need to get this thing using bunch of IPs to stop hammering my servers", apparently Anubis helps them with that. If that stops working, other tactics are tried, and so it goes on for the life of your service. Hasn't stopped yet, does…

That argument also works against anubis. Why bother forcing clients to solve a PoW challenge, when you're fighting a bunch of unsophisticated attackers that will be deterred by a javascript challenge that requires them to solve `result = x + y`?

This is why there's the meta refresh challenge as an option: https://anubis.techaro.lol/docs/admin/configuration/challeng...

Turns out that in practice there's some bots that implement support for this but not JavaScript.

Re: It took a year to ship WebAssembly in Anubis

#73

Earlier quoted context omitted.

It's funny, because on the scale of things that are annoying an uncool, I find someone saying the word "retarded" as a pejorative in the year 2026 to be far, far more annoying and uncool than a harmless anime-inspired mascot for an open source project.

[flagged]

Trying to prevent scrapers from abusing your site is like... being terminally sick?

I don't think your comments are really about Anubis. Perhaps it's time to log off for a bit.

Re: It took a year to ship WebAssembly in Anubis

#74

It would be cool if the POW could be done ahead of time. That way I don't get stuck waiting while I'm working. Some type of credit/tokens that my browser could then spend.

Privacy Pass does something similar to what you describe: https://developers.cloudflare.com/waf/tools/privacy-pass/

Re: It took a year to ship WebAssembly in Anubis

#75
post #48
post #7

Earlier quoted context omitted.

I'm working on this with a private prototype. I'm probably going to lean towards using a Service Worker ( https://developer.mozilla.org/en-US/docs/Web/API/Service_Wor... ) to renew challenges at a reduced difficulty. Stay tuned!

That just creates another problem: if you're taking any measures to reduce tracking (ie. clearing cookies on shutdown or using temporary containers), this won't work. If anubis was being deployed on a site that a user visits often (eg. HN), the user might be convinced to whitelist it, but most anubis deployments are on random blogs or fediverse instances that I might not visit again in months. I'm certainly am not go…

Look, if you're going out of your way to break expected behaviour on websites you shouldn't be surprised when people code to the most common denominator and then you have weird subtle breakage as a result.

Re: It took a year to ship WebAssembly in Anubis

#76
post #30

> hey Claude vibeslop me a CUDA Anubis solver" route is on its way to being fundamentally dead. Lmao yeah no. I don't think a little argon2 is going to change shit all. I mean the thesis of Anubis itself is "scrappers are compute limited (in ways that consumer devices are not)" which has its own massive flaws.

Yes, I also strongly suspect that this is only going to move more parts of scrapers onto consumer devices. The egress proxies are already there, why not use a little bit of the compute as well?

When you force a low end device to burn CPU or fill ram constantly, the owner throws it out and buys a new one.

Re: It took a year to ship WebAssembly in Anubis

#79
post #63

Earlier quoted context omitted.

> Scrapers can't change their strategy? Yes, but you normally don't try to fight all strategies up front, you add stuff on a need-to basis. Currently, lots of people are in the stage of "need to get this thing using bunch of IPs to stop hammering my servers", apparently Anubis helps them with that. If that stops working, other tactics are tried, and so it goes on for the life of your service. Hasn't stopped yet, does…

That argument also works against anubis. Why bother forcing clients to solve a PoW challenge, when you're fighting a bunch of unsophisticated attackers that will be deterred by a javascript challenge that requires them to solve `result = x + y`?

Point is, you get problems because of something like this, you try either approach. And when that stops working (because eventually it will), you add something else. Some work better against some actors, but also feels like it never ends, so slowly you add more things. I don't think Anubis is uniquely able to stop that particular type of annoyance, it's just one of the tools you can see if it helps. If you want to try something else before, makes a lot of sense to do so.

Re: It took a year to ship WebAssembly in Anubis

#80
Great article, WebAssembly is such a good technology when you have use case for it.

I've just finished creating a WASM 1.0 implementation (simple JIT on x86 and x86_64) for plugin usage and I'm looking on how to support more languages beyond C (for which I have "micro-libc" to create really small binaries). In particular C++ and Rust so the article contains useful info for that. C++ that would be more problematic I think, would have to resort to full Emscripten or something... I've tried to compile standalone C++ stdlib but wasn't much sucessful yet.

BTW, I see in the screenshots you also test Firefox, I think it would make sense to test the latest two ESR versions (these are often used by Linux distributions).

Post reply on HN