Top
Best
New

Posted by sammy0910 6 hours ago

I posted to HN, and then my website was flooded with AI bot traffic(www.sammystraus.com)
202 points | 125 commentspage 2
layerv-ai 1 hour ago|
It's unfortunate that this also just leads to port scanning and huge accidental bills. This happened in the past to more than one acquaintnace of mine; go and market their vibe-coded/OS project on HN + twitter and then suddenly the vercel bill goes through the roof with bots scraping the website to bits, even with bot protection from CF. Really hard to get away from it these days, but hopefully over the next few years some new startup will raise $50M for "killing cloudflare" and will actually follow through!
beybol 5 hours ago||
In server logs you can distinguish the type of LLM's traffic. OAI-SearchBot/GPTBot/ClaudeBot is just indexing but ChatGPT-User/Claude-User etc. may be valuable traffic generated by user's conversation with LLM's. So it's worth choosing which ones you block, instead of blocking all of them.
jeroenhd 2 hours ago||
> valuable traffic

What's the value for the website maker in these? There's user value to it (rather than just value for Anthropic/OpenAI) but the whole point of these bots is to make sure nobody ever needs to visit your website.

beybol 27 minutes ago|||
In my case this is the main source of registered users. If a user is engaged in a discussion with chatbot and gets the recommendation from it his engagement is higher. For example, in my system, a user has registered and within one hour used the system 7 times and stayed active while for registrations from Google I can observe zero-activity accounts.
timpera 1 hour ago|||
Tons of people click from ChatGPT! It's now the top referrer on most of my websites, and seems to be on path to overcoming Google soon (a ton of traffic from Google has vanished since the AI Overview rollout...).
spindump8930 2 hours ago|||
Strong agree, a good way forward is letting user agent once again truly mean an agent on behalf of the user. And speaking anecdotally, I've seen different traffic "shapes" under the same UA, which leads me to suspect that some actors might be disguising traffic as more mainstream labs.
allmightyleobyt 17 minutes ago||
[flagged]
Twiin 1 hour ago||
I posted a link to HN a few days ago that got literally zero upvotes and zero comments (Applying NASA's satellite-imaging trick to ancient museum objects https://news.ycombinator.com/item?id=50023128) and it was hit with insane bot traffic. HN was the only place I had posted it.
seam_carver 1 hour ago||
Oh is that why I keep getting those ai emails about the project I posted earlier?
sixhobbits 1 hour ago|
Yeah it's awful they keep coming months after you post anything as a Show HN now, definitely discourages me from doing it
dspillett 1 hour ago||
One option to reduce it, though this is work to setup initially:

1. Use a catch-all subdomain

2. Reject email to addresses where a simple checksum does not match (valid addresses being something like asdfghij.klmn@catchall.domain.tld where the klmn is taken from hash of asdfghij and some secret, anything not matching that pattern gets rejected) [this means running your own mail server so you can do that on incoming mail, running a scan to pick out and remove errant messages regularly, or having a mail client where you can implement this as a plugin]

3. On your contact detail page, don't give out a straight email address but have the the page run some Anubis style JS before asking the server to respond with an address that works

4. Once an address is obviously being used in a manner you don't care to respond to, add it to an explicit block list.

For extra protection from addresses being passed around (intentionally or via hack & other leaks), ask for their email address first and use that as part of the hash, then you can reject mail to your catch-all that doesn't come from the original other party.

Whether all this is worth the effort of implementing, is of course up to you. It probably isn't… I've been considering something like it, but mainly as a fun little project rather than something that would be massively useful.

est 2 hours ago||
> my website is built as a single-page-application

There you go. Ditch it. Make you pages cachable as much as you can.

andai 5 hours ago||
I'm trying to understand the reasoning behind the entity that was sending presumably hundreds or thousands of requests per minute to the same page. It's some kind of AI news site, so it makes sense they want the freshest content, but it sounds like they were doing many requests per second, so that can't be the reason?
MisterTea 4 hours ago|
> I'm trying to understand the reasoning behind the entity that was sending presumably hundreds or thousands of requests per minute to the same page.

The most likely answer is they don't give a crap because it's not their money and no one is going to do anything about it.

andai 4 hours ago||
Nice. How do I get a massive swarm of nodes on someone else's money?
Havoc 5 hours ago||
> I won't name names, but I looked them up, and they describe themselves as a service that listens for changes to a website, and then summarizes them into an AI slop news letter. And by 'listens to changes' I mean query our website many many times per-minute. Blocked.

That sort of behavior would justify a name and shame imo

Inconsiderate shitty services don’t deserve the politeness of protecting their name

yonatan8070 4 hours ago|
I wonder if you could just blast them with ever changing content to burn their summarization tokens on BS.

Though they probably use the cheapest possible models they can so the damage from their dumb business model would be limited

bix6 6 hours ago||
> one specific user. I won't name names

Who is?!

sammy0910 6 hours ago|
haha im not naming names
timpera 56 minutes ago|||
Is it SpokenFeeds?
nekusar 6 hours ago||||
You shouldnt defend bad actors and abusers. Hiding them is tantamount to them attacking others indiscriminately. Cause youre not the first victim, and definitely not the last.

You see something, you say something, or you do something.

dsfnsldfnsdfnsd 4 hours ago||
How else will the author play the victim for some clicks then?
rvz 4 hours ago|||
Does the country end with an "a" with 5 - 6 characters long?
Jaxan 4 hours ago||
Oh, as soon as you add tls to your subdomain, the bots come. It’s instant.
jeroenhd 2 hours ago|
Certificate transparency logs get scraped. However, they cannot scrape wildcards. Get a domain.example + *.domain.example cert and host your blog on blog.domain.example and you can keep the bots from finding you, at least for a little while.
arisudesu 17 minutes ago||
No, it wouldn't. Just yesterday I added a domain.example + *.domain.example certificate, and today some bot comes to scan for subdomains: api, app, backup, beta, cdn, ci, mail etc. Blog isn't in the list, but just for this bot.
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 9 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 2 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 2 hours ago||
> 3000 concurrent crawlers

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

More comments...