Top
Best
New

Posted by sammy0910 7 hours ago

I posted to HN, and then my website was flooded with AI bot traffic(www.sammystraus.com)
209 points | 133 commentspage 3
mediumsmart 4 hours ago|
if you want the site to be fast, don't render it with javascript and take a look at the google lighthouse check for things to improve:

https://pagespeed.web.dev/analysis/https-sprinklz-io/bmc4mv1...

jacobgkau 31 minutes ago|
That's a vague and borderline off-topic suggestion, imo. When the problem is too many malicious visitors hammering your server, the amount of time it takes the visitors' browser to run the JavaScript is not the issue; on the contrary, when dealing with this issue, you might as well do more rendering client-side to offload as much work from the server side as possible (hence the Anubis-esque defense of adding random JavaScript work that isn't even necessary to render the real page).
robotmay 3 hours ago||
I've been posting about this recently but I continue to be bad at either timing my submissions or titling them. I struggle with YouTube thumbnails too so I think it might be me. But anyway:

I experienced the same thing after submitting articles from my small photography website. I did debate using some of the off-the-shelf solutions like Cloudflare, Anubis, or iocaine, but I ended up building my own L7 proxy that utterly fucks the bots up: https://robertmay.photography/journal/bwbach-my-guardian-gob.... I will make it generally available at some point once I get it optimised how I'd like, but currently I'm able to trap about 3000 concurrent crawlers in my tarpit of slow requests on two small Hetzner VMs. And that 3k is really just the limits of the networks hitting my servers right now, I think it'll go significantly higher than that.

I haven't really seen anyone else combat them this way, possibly because many of the standard proxies and servers are set up for fast requests, not serving them as slowly as possible. Deliberately serving page loads for as long as the requester will accept packets turns out to be a really funny way to stop the botnets - when I just rejected the requests they in turn hammered my server even harder. By tanking the request volume with a ridiculous BEAM-based proxy you can reduce their request speed to a crawl and I'm fairly certain a couple of them have blacklisted my server now.

h43z 44 minutes ago||
I'm running some tests currently

https://deep.43z.one (how deep bots will crawl)

https://stalling.43z.one (how long they'll keep the connection open)

bayganyo 3 hours ago|||
I like the spirit of this approach; make them suffer! But I'm surprised the bots wouldn't have reasonable timeouts to counteract. How long do they typically wait on these requests?

EDIT: sorry, that was a dumb question before reading your post. You actually learn the timeout they tolerate. Nice!

robotmay 3 hours ago||
I should probably put together some actual stats at some point, but from what I see in the live logs you'd be shocked - some of them will happily sit there for over 5 minutes being drip-fed packets!

Looking at you, Meta.

I do still get some requests going up to 15 minutes which is quite ridiculous, though those don't seem to be super common (maybe they're learning).

I think the shortest timeouts I've seen are between 2-5 seconds, but they're surprisingly infrequent and actually that's still a massive inconvenience for them. I did at one point just drop any request I couldn't keep open for more than 5 seconds but it actually caused more server load. I'm essentially inverting the server load by making slow requests more efficient, which is counter to everything I ever learnt about performance for web serving :D

I think the average I see is probably somewhere between 15-30 seconds. I'm guessing many crawlers don't want to go too low because they'll be trying to fetch large files like images, or perhaps they know they'll be slowing servers down and want to ensure they get the response. Most likely, the majority of crawler authors aren't expecting some arsehole to exploit this and they've just left the setting as the default.

pmlnr 3 hours ago||
> 3000 concurrent crawlers

I gave up on tarpits when it got to 130k "waiting" connections.

oneeyedpigeon 6 hours ago||
What confused me most about this is that the entire site is, apparently, a single page (there's no sitemap that I can use to verify this; there IS an RSS file which appears to confirm it) containing all posts. Links at the top (headed "Table of Contents") are all in-page links.

At first, I assumed this was a single blog post, especially with a "Table of Contents" at the top. I guess it's following some old-school blogging conventions, but AFAICR, even those sites retained individual pages for separate posts.

sammy0910 6 hours ago|
it's org-html-export-to-html babyyy lmao
ciroduran 1 hour ago|||
I've wanted to work with org mode for so long, but I can't simply bring myself to use emacs. Nothing personal. Org mode is awesome, tho.
sammy0910 6 minutes ago||
if you do decide to give it a try, and are coming from vim, i've had a good experience with https://github.com/emacsorphanage/god-mode as a way to kind of bridge the gap into modal editing
sammy0910 6 hours ago|||
I think I could improve the format a bit with something like Jekyll, but I haven't had a good chunk of time to sit down and work on it
kqr 6 hours ago||
You can also link between Org documents and org-publish will export the documents with working web links, if you're lucky. That's how https://entropicthoughts.com works.
nubinetwork 5 hours ago||
I get llm-like traffic on domains with zero web content (never was, probably never will be any).

Just merely existing will get you scanned these days.

dspillett 1 hour ago|
If you have an SSL certificate so such a domain can serve HTTPS traffic if needed, which it wouldn't surprise me if some parking services generate for you these days via an ACME provider, then your domain will be in the certificate transparency logs so can be found that way.

One possible way around this is to use a wildcard and not serve anything on the base domain. Unless the right subdomain is listed somewhere, they'll not get any scans. Maybe useful for projects that you have online for just yourself and a small closed circle.

xvxvx 4 hours ago||
I wonder if this is why I see so many YouTube links posted under ‘new’ that never make it to the FP. Is this a way to get bot scraped and boost views/interactions?
bityard 1 hour ago|
Possibly, possibly not. I think some people are used to passing around news/information as short-form videos these days but HN (mostly) isn't into that kind of content.
andai 5 hours ago||
Interesting, thanks for sharing.

>So I took a look at some data. I added top-level logging for every endpoint (how many times was a request made to each url path), and I found that a majority of the requests did not even make an attempt to fetch news articles! For reference, my website is built as a single-page-application, and what this means is that a majority of the requests did not even run the javascript necessary to render the page (!).

So you got hammered by curl requests! But isn't that part of your delivery static anyway? Were you regenerating the same HTML over and over?

>many, many requests per minute?

How many was it?

Also interesting that it was a single "user". (user-agent?) Did it come from a different IP every time?

But hey. Silver lining: free load testing! ;)

sammy0910 4 hours ago|
> So you got hammered by curl requests! But isn't that part of your delivery static anyway? Were you regenerating the same HTML over and over?

i dont think this was the cause of the slowdown, it was just sort of the thing that led to the discovery that this was mostly bots.

in general, because the purpose of the website is to allow users to generate news feeds based on custom criteria, it does do a bit of meaningful work on each request (ones that do follow through and load the full page).

> How many was it? > Also interesting that it was a single "user". (user-agent?) Did it come from a different IP every time?

I'm intentionally leaving some of the details vague here, both because I don't want to be too harsh on the original author (it may have just been accidental/a buggy program/etc.), and because I don't want the traffic generators to know how im flagging them.

steve_adams_86 4 hours ago||
I ran into similar problems. My analytics became so useless that I threw them out.
egberts1 4 hours ago||
That is primarily why websites only TLS-negotiates for server-side-only ChaCha-Poly.
MaxBarraclough 3 hours ago|
How could the specifics of TLS help deter/block bots?
thmorriss 3 hours ago||
love the simple css of this. very tasteful and beautiful, even if its just simple.
mococa 6 hours ago|
Same with me, every-time I got 1st page I got a lot of robots
More comments...