It's too late to comment on your older posts, but I'd just like to say: it's nice to see someone making oldschool web browsers work properly on the modern web.
I was going to comment on that too. Talk about burying the lede! The idea of using an LLM to generate a static program for a specific web site is brilliant. It reminds me of the second Futamura projection.
Perhaps a contribution requirement per post? Though this proposal just invites bots to actually post comments because that becomes a requirement for posting links.
> Please don't use HN primarily for promotion. It's ok to post your own stuff part of the time, but the primary use of the site should be for curiosity.
I don't know HN's rationale, but: if you try to ban self-promotion, then in practice you're only banning honest self-promotion. And if you allow it, but try to ban accounts that only exist for that purpose, then in practice you're encouraging them to spam mediocre comments in other threads to dilute the signal. [edit: I see that the guidelines do say not to use HN primarily for promotion. I'm willing to bet this significantly increases the amount of insincere engagement, but obviously the admins/moderators here are more aware of the tradeoffs than I am and have decided they are worthwhile.]
IMO the important thing to try to crack down on is vote manipulation; if you have that under control, then you can probably happily allow self-promotion and trust that only the interesting stuff will rise to the top.
I _also_ posted to HN and made it to #1[0]; the effect this had on my CPU/network traffic on a 5/EUR month VPS over at Hetzner was in the single digit percentages.
As per the wiki page for the C10k problem[1] where it says "_was_ [emphasis mine] the problem of optimizing computer networking stacks to handle a large number of clients at the same time". This was solved over a decade ago...
The c10k problem is a different problem. It relates to simultaneous open TCP connections at a server. It would take a very very large number of crawler bots to force open 10k connections, I suspect.
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.
I recently posted a link that got 2 boosts and 6 faves, but it was requested by about 300 fedi servers so they could generate a preview.
Which is fine! Because even though my photo gallery runs on a 15 year old laptop in the basement, I wrote the gallery software in a fast language (Rust) and so a trickle of requests maxing at 4 per second is not actually a problem.
People complaining about fedi hammering their servers are probably using PHP or Python.
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.
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
and a handful of other ASNs on almost all of my properties. It would be one thing if it was simple scraping, but it's often genuine agentic abuse (just spamming for vulnerabilities* or scraping millions of pages with very little valuable or dynamic content). These clouds must get the abuse happening under their own roof under control.
I banned Alibaba's Cloud two years ago and it still hits one of my domains 1 million times per day, despite every route 4xx-ing during that time.
Even Apple has aggressively ramped up its scraping in the past few months, but thankfully they do respect robots.txt.
It's frustrating because some of my real users route through these clouds via their work VPNs.
* like leaked .env routes, brute forcing admin panels, and so on
If there's a know CVE in a version of cPanel ir wordpress for example, those platforms broadcast what version they're on, so the matching cve being known is not illegal. You're just correlating known vulnerable versions without doing any probing. Pen testing however, a bit more involved in pulling info out without permission is illegal.
Can you enforce it? Would you even know who to go after?
Traditionally cybercrimes have been prosecuted by the victim going to their local PD (or the FBI) with the IP address of the offender, and then law enforcement subpoenas the ISP associated with that IP address to figure out the customer associated with that account, and then they have a case for prosecution. It all works as long as cybercriminals are less numerous than law enforcement, fall in the same jurisdiction (or in jurisdictions that have reciprocal extradition treaties), and have a real identity that can be tied to their online activities.
Now, many law enforcement agencies are tied up prosecuting political opponents of their bosses. To the extent that they have bandwidth to investigate and prosecute ordinary crimes, they're going to prioritize the ones that target a.) the government that backs them (of which there are many - you see another headline about the government being hacked every week or so on HN) b.) major corporations that have sophisticated IT systems that can aid prosecution or c.) headlines that will get their boss a PR boost and themselves a promotion. Your personal website does not register among those priorities. You probably can't even prove damages from the intrusion itself. The perpetrator might be a Russian bot that the U.S. doesn't have jurisdiction over, or a Canadian teen that the U.S. previously might've been able to prosecute with reciprocal judicial treaties but now has no leverage over because we've blown up our relationship with Canada. It may be legally a crime, but economically it's not worth prosecution.
Traditionally security researchers had to be very careful because they were doing everything above-board, with their real identity attached to their actions, and they made a very attractive (and PR-worthy) target. Somebody who's port-scanning from Russia through a VPN or residential proxy network is a.) anonymous b.) untraceable c.) out of U.S. jurisdiction and d.) not a headline-worthy target anyway.
A couple years ago I predicted here that a lot of things will break as the U.S. transitions from a high-trust to a low-trust society. This is one of them. Much of our justice system works well when criminals are rare and utterly falls apart when they're ubiquitous.
I’ve had to block similar on clients sites. Their search pages would start to get hammered with obvious agentic search spam. Searching for thing not even related to the site in all combinations of the queries. Some of the user queries contained potentially PII.
Most big services will just take the junk traffic. They're never going to block whole cloud providers.
Blocking cloud providers is strictly for us dirty self hosters who are sick of our logs becoming unreadable and our visitor metrics useless from all this malicious traffic.
Does the money add up for that to be a deterrent? Are those using them for general VPN access paying enough that they'd care much, and if so is that enough compared to what they'd lose by kicking off the users abusing external sites (they can't all be using just free plans, and anyway tests to kick them could have enough false positives to lose them good paying customers as well as bad users). In any case is the amount of traffic enough for them to care to spend the effort tracking it to identify the bad users?
However, they could just use residential proxy botnets.
I believe the future is static resources with dynamic apps being only offered to people who can authenticate. And even then I’d recommend grandfathered accounts (eg telegram users that had an account for at least a year).
> like leaked .env routes, brute forcing admin panels, and so on
That sort of thing was very common long before agent based abuse scanners. Volume would wax and wane but never went away.
Though other scans for vulnerabilities have shot up in frequency now everyone script kiddie and their flee-bitten mutt can ask an AI to do it for them.
Bots and spiders hang onto old URLs longer than I hold onto a grudge.
We had some SSR that followed up with JavaScript listeners to do interactive updates instead of loading a whole new page. But the team responsible didn’t add nofollow and some bots ignore it anyway. Some significant fraction of our cluster size was answering those requests. But one deployment someone broke the fuck out of those links and it showed up immediately in our 4xx error statistics and we rolled the change back within a week.
Three years later I was still seeing those busted URLs being submitted.
Then the fix for the nofollow got implemented and declared done but the flag never got made permanent. We were pretty peeved when someone learned that in some offhand comment in a conversation between teams.
We were already identifying “good” and “bad” bots at the border and telling them to fuck off, so all of this was coming from our supposed friends. And that’s when I realized that a company owning a search engine and a cloud service provider is a protection racket. Google cloud is selling you servers in order to be talked to by Google bots.
Can you do something with fail2ban? I.e. after a small number of requests resulting in 401 or 404, or a series of requests that's too fast to be reasonably from a human, ban that address for 48 hours.
If a legitimate request later comes from that address, it will probably get through.
But not sure how well iptables handles checking every connection against a list of possibly hundreds of thousands of addresses.
All those boomers out there with free IPTV just don't understand why it's free, my in-laws are guilty, but hey, they can glaze over and mindlessly melt like it's the 80s in different timezones and across continents
Does that old slowloris thing work but in reverse? Up your connection limits and keep N alibaba ones open forever, drip feeding them a small stream of data until they leak or timeout.
We spent a decade wasting cryptocurrency compute and still didn't come up with the decades old promise of a partial payment plan for web use. Seems like it'd make a lot of sense now that ad revenue is basically garbage and repetitive traffic is clearly just leeches and parasites that should pay for freeloading.
Someone hack a payment gateway into every webserver and MCP and let's get the bloodsuckers to pay for the internet.
This has been going on for FAR longer than LLMs have existed. We call it "internet background radiation", because it's everywhere; it usually shows up within minutes of a host coming online. Or just about immediately after your first LetsEncrypt certificate gets issued.
Pretty much every infosec company of non-trivial size runs one set. The old venerable services are Shodan and Censys. Then there are a various security "researchers" who like to point their crapware vulnerability "scanner" at a subnet or ASN and let it rip.
And then there are of course all the actual botnets and low rent access broker wannabes trying to pop shells where ever they can, so they can resell that access.
I did this for alyph.ai, but was recently flooded with so many browser-using, Turnstile-defeating bots from Taiwan that I had to completely turn off sign ups. It's not fun anymore.
Not even third party login worked (Google, Linkedin, ...) to curb this.
They were logging in, scraping the client API for vulnerabilities/possibilities and then spammed erotic dog poems to Claude Fable until the $5 welcome credit got drained.
Since there were a couple upvotes, here's one I saved and Google-translated:
<story-record>
## Phase O. This round is a key advancement in the long-term, solidified daily storyline: the two enter Zhou Zhiyi's apartment for the first time under the guise of "non-purposeful" activities, and the soup-making incident becomes a new variable in their relationship. The task is to let this soup ferment naturally, without ending it or revealing anything.
## Phase [Reflections on Life]
1. Vibrant: Wu San and Wu Si appear as living beings with distinct personalities; Wu San is a drama queen, and Wu Si is slow to warm up; Zhou Zhiyi's apartment retains traces of his real life (a rhinoceros beetle insulated box, vinyl records, Pokémon, and a doghouse).
2. Cognitive Barrier: Shen Liran's "disbelief that he can make soup" and "wanting to kidnap a dog" are information revealed through her words and actions, which Zhou Zhiyi can perceive; however, he
... [some more gibberish] ...
Then Wu San saw Shen Liran.
This dog's opportunism was on full display. Abandoning her father, she turned her short legs and charged towards the backless dress, her front paws gripping the hem, head tilted back, a precisely calculated whimper escaping her throat. Zhou Zhiyi stood in the entryway changing his shoes, coldly observing the performance, thinking, "She's been fooled, fooled. I just fed her a treat this morning; she's a master of disguise."
Sure enough. He counted to two, and Shen Liran had already squatted down, oblivious to the hem of her coat dragging on the floor. She ran her hands into her long, brown fur coat, her voice sweet enough to make candied fruit: "Oh my, you're so soft to touch! Did you miss me? Even your dad isn't as good at being affectionate."
"Three seconds." Zhou Zhiyi hung their leashes back on the wall. "I said you wouldn't last three seconds, and you didn't even last three seconds. You squatted down before she pounced on you; that's a false start."
Interestingly, in the markdown, which was Chinese mostly, "Phase" and <story-record> were in English.
I run a few private MMO servers, we have a website with a support forum, in order to post, you need to register, log in, fill in account data, then create a thread, each of these pages is protected by Turnstile as well as a general bot check for the website, we frequently get automated spam from RMT services for the OG game. Turnstile is maybe effective against simple bots that just try to call curl/requests/whatever but if you have bots that use a browser driver it's completely useless.
Turnstile is no longer effective. Anyone with a budget uses a real headless chrome instance and gets around it. You only need the spendy chrome instances to get the initial cookie, then you pass that to your workers and they scrape.
It’s really starting to suck. The worst part is these are coming from consumer vpn providers that we can’t just block (lots of real users paying real money on our service are vpn users) or they come from big residential isps. The whole residential relay thing is a hard adversary, since it’s spread across so many real users paying ips that you can’t whackamole it. I’d say 1% of residential ips are participating in a botnet (there’s prob some real numbers out there if I cared to look).
This is just going to push everyone harder into walled gardens. Web input biggest inbound but our content is our mote, we are going to have to turn off non logged in content viewing, which will have real business impacts.
Ok, on the one hand to have one bot hitting your website to populate some kind of slop newsletter is pretty annoying.
On the other hand, “multiple times per minute” doesn’t seem that high? Even if it was 60x per min that’s fully within the limits of what a 2015 laptop in the closet can handle.
> 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
Last year, I wrote a post about how I use zipbombs to deal with bot traffic [0]. It went mega viral over the web, and I regret it. My server was completely overwhelmed with bot traffic. After months of dealing with it, I had to find a better strategy then keep my mouth shut.
It worked fine... on a small scale But it's one thing to swat flies versus fighting swarm of yellow jackets. Serving a 1MB file a million times a day on a small digitalocean droplet is not feasible. Let's just say it didn't scale. And AI bots usually come with beefier machines, and recover faster after a bomb.
It's the content of the page, the raw html, that is replaced with a zipbomb. Example: https://example.com checks if you are a malicious bot, depending on the result, it will send you gzip html or gzipped bomb. So that can't be swapped or redirected to a CDN. The bots would simply ignore the redirect.
I have a small website with a contact form that gets a lot of spam. I found a very effective way of filtering spam, but it only works because it's not mainstream, so I can't ever share it :(
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.
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.
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.
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...).
I realized its much faster to do the "google thing" just with chatgpt. Its filters all the sh!t for you. Searching the net frustrates me most of the times this days. Search engines are software for an older generation of the www.
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.
>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?
> 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.
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?
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.
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.
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.
I rolled my own version of Anubis for reasons*, and > 80% of all traffic is bots that fail the challenge, even when white listing legit crawlers.
* I wanted an elixir version so I could run it alongside my existing apps instead of having it sit as a proxy in front of them. This way my existing apps can validate if the caller is already whitelisted and if not redirect to the challenger https://sphinx.8by3.com which sends you back to a site if you pass eg. https://tuhat.net
If you are rolling your own it probably doesn't need to be as clever as Anubis is trying to be. Simple something relatively CPU heavy in JS will do the trick, bonus points if you can make it memory-heavy too. Most bots will give up running something CPU heavy currently (though they will run a lot of JS stuff as much of the web is inaccessible without) and they aren't going to optimise your challenge in WASM or similar because it isn't worth it for the small number of sites it protects (Anubis' challenges on the other hand may well be worth optimising for that way because of their wider use, hence that project is stuck in the cleverness war of attrition and definitely needs to move toward memory-hard problems and something more efficient than JS sooner rather than later).
My main reason for planning to implement something like that myself instead of something off the shelf is two-fold:
1. The points mentioned above
2. I can be a dick and make some subsets do harder work (longer challenges, adding time delays that wouldn't phase a bot) - “hi there North American IP, I know how much you like extra hassle hence the love of effectively paying for tarriffs, here, have a little extra work on me!”
> “hi there North American IP, I know how much you like extra hassle hence the love of effectively paying for tarriffs, here, have a little extra work on me!”
I'm assuming you're outside the US based on having this idea.
You might as well just say "I'm mad at your country for the tariffs, so here's an extra wait." From the fact you feel the urge to spite people in a tariffing country like this, it's clear the tariffs have had some negative effect on you, which goes against your narrative that they're "effectively paid for" by those in the tariffing country who voted for it.
You have a some incorrect assumptions there. Yes, I'm outside the US, though I can't say I've experienced any issues at all that can be attributed to the continuing little tariff spat. I have heard of US citizens either complaining about cost raising because of them, or if not complaining then acknowledging them as something they consider a necessary pain. There are a fair few things I'm mad about, some of which do stem from the current administration over there, but this certainly isn't one of them. In fact I'm currently amused by it and the urge to mildly irritate those state side is in order to extend that amusement a touch.
I see, you're supposedly just amused by annoying people... that certainly makes you look better, I can see now why I was downvoted. /s
If you think your nagware is going to get back at US citizens for completely unrelated policies you're mad about, then maybe you should list those policies in your message instead of bringing up tariffs? That seems like it would be more productive to your goals, and less likely to make it look like you're salty and/or making a faulty argument regarding tariffs.
> I see, you're supposedly just amused by annoying people...
Some people, yes. I'm not claiming to be a good person, especially not that this makes me one. Some of my interactions on social media are similar - I do it to vent a little, and for a little dopamine hit & mental health boost, or just because I need a short escape from work/chores/other for a few minutes and the get-some-fresh-air, or play-with-the-cats options are not available at the time. I call it my “breakfasts with the Percy's”.
For the record I, except for very rare occasions, don't downvote: I either comment or move on. Most likely the people that have downvoted have done so not because they disagree with you (maybe they do, maybe they don't) but because that post was the point we stepped too far off-topic, so perhaps try not to take that personally.
> more productive to your goals
Why do I need to be working to a world changing goal beyond a bit of “isn't the regime over there a bunch of great steaming wazzocks?” banter that might amuse some people I like, and maybe irritate some who I disagree with¹? Some things are just little in-jokes, not everything has to be for grand effect in some more meaningful agenda.
--------
[1] though they'll likely never see it, this is stuff I only put online for me and a few family/friends, including a couple state-side. Even the scraper bots haven't found it yet (the look-for-known-vulnerable-software scanners pass by regularly, so that is likely only a matter of time) so I doubt a mass of random human visitors are ever going to flow in.
The challenge isn't terribly clever, just some basic crypto maths, same as Anubis. There are a very low number of AI bots that pass it based on my logs, like 0.01% low and I suspect they are interactive agents that bother to run JS as crawlers typically don't. Assuming these are actually run on an end users computers I don't think any amount of cpu/memory weight would be a real blocker. One thing I've seen that is interesting'ish is bots failing as they answer the challenge from a different IP than it was requested from, and the source IP is validated as part of the response so they fail.
> that bother to run JS as crawlers typically don't
I'd be surprised if many don't run basic JS, given how many sites require it for basic content these days (load base site, then make a fetch request for the actual content), unless there are less such sites than I think.
> One thing I've seen that is interesting'ish is bots failing as they answer the challenge from a different IP than it was requested from, and the source IP is validated as part of the response so they fail.
From what little I've looked into the details, it seems that scrapers (both old and new) using a scattering arrangement (built in or via an outgoing proxy) seem to be split 75/25 between those that completely scatter (following requests will almost certainly come from a different address) and those that stay on the same address for at least the first few requests (which would cover login, bot challenge, or such) then move around to avoid requests-per-source-address based resource management measures. Only really simple ones (someone running a recursive wget without proxy) stick to the same source address all the time now.
Unfortunately you can't be more strict about changing source addresses because of how many false positives you will see. CGNAT arrangements often move people between addresses fairly regularly, and even without that there is the common case of people moving away from a WiFi AP and automatically flicking to their mobile network (or another nearby AP).
I posted a link to an online game I made in the comments here once, and immediately got all kinds of good and bad traffic.
Some people liked my work, found me on LinkedIn and sent a connection with a positive message. Other people tried every which way to SQL inject or attack the site, posted slurs in every available input, etc.
Someone copied the site and hosted their own version with a couple minor changes. I only found that one because they had left one of the links in, which gave me referring traffic from their copy.
The internet is a floodgate of different actors, many of which are automated, and a link posted somewhere like HN opens the valve especially wide.
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).
188 comments
[ 4.4 ms ] story [ 77.3 ms ] threadhttps://www.sammystraus.com/#using-llms-to-make-the-emacs-we...
https://en.wikipedia.org/wiki/Partial_evaluation#Futamura_pr...
https://blog.sigfpe.com/2009/05/three-projections-of-doctor-...
Perhaps a contribution requirement per post? Though this proposal just invites bots to actually post comments because that becomes a requirement for posting links.
> Please don't use HN primarily for promotion. It's ok to post your own stuff part of the time, but the primary use of the site should be for curiosity.
IMO the important thing to try to crack down on is vote manipulation; if you have that under control, then you can probably happily allow self-promotion and trust that only the interesting stuff will rise to the top.
As per the wiki page for the C10k problem[1] where it says "_was_ [emphasis mine] the problem of optimizing computer networking stacks to handle a large number of clients at the same time". This was solved over a decade ago...
Now get off my lawn!
(TBF I think the author acknowledges this)
[0] https://news.ycombinator.com/item?id=43725815
[1] https://en.wikipedia.org/wiki/C10k_problem
You can do that with any system made in the past 15, maybe 20 years.
From the wikipedia page:
"As of 2025, the problem has long since been solved, with the number of possible connections to a single computer being in the millions."
Who is?!
You see something, you say something, or you do something.
Which is fine! Because even though my photo gallery runs on a 15 year old laptop in the basement, I wrote the gallery software in a fast language (Rust) and so a trickle of requests maxing at 4 per second is not actually a problem.
People complaining about fedi hammering their servers are probably using PHP or Python.
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.
I banned Alibaba's Cloud two years ago and it still hits one of my domains 1 million times per day, despite every route 4xx-ing during that time.
Even Apple has aggressively ramped up its scraping in the past few months, but thankfully they do respect robots.txt.
It's frustrating because some of my real users route through these clouds via their work VPNs.
* like leaked .env routes, brute forcing admin panels, and so on
Traditionally cybercrimes have been prosecuted by the victim going to their local PD (or the FBI) with the IP address of the offender, and then law enforcement subpoenas the ISP associated with that IP address to figure out the customer associated with that account, and then they have a case for prosecution. It all works as long as cybercriminals are less numerous than law enforcement, fall in the same jurisdiction (or in jurisdictions that have reciprocal extradition treaties), and have a real identity that can be tied to their online activities.
Now, many law enforcement agencies are tied up prosecuting political opponents of their bosses. To the extent that they have bandwidth to investigate and prosecute ordinary crimes, they're going to prioritize the ones that target a.) the government that backs them (of which there are many - you see another headline about the government being hacked every week or so on HN) b.) major corporations that have sophisticated IT systems that can aid prosecution or c.) headlines that will get their boss a PR boost and themselves a promotion. Your personal website does not register among those priorities. You probably can't even prove damages from the intrusion itself. The perpetrator might be a Russian bot that the U.S. doesn't have jurisdiction over, or a Canadian teen that the U.S. previously might've been able to prosecute with reciprocal judicial treaties but now has no leverage over because we've blown up our relationship with Canada. It may be legally a crime, but economically it's not worth prosecution.
Traditionally security researchers had to be very careful because they were doing everything above-board, with their real identity attached to their actions, and they made a very attractive (and PR-worthy) target. Somebody who's port-scanning from Russia through a VPN or residential proxy network is a.) anonymous b.) untraceable c.) out of U.S. jurisdiction and d.) not a headline-worthy target anyway.
A couple years ago I predicted here that a lot of things will break as the U.S. transitions from a high-trust to a low-trust society. This is one of them. Much of our justice system works well when criminals are rare and utterly falls apart when they're ubiquitous.
Similar to ad click fraud and scam ads, the cloud provider gets paid, why would they turn down the money?
Blocking cloud providers is strictly for us dirty self hosters who are sick of our logs becoming unreadable and our visitor metrics useless from all this malicious traffic.
Why allow random requests coming from the clouds?
However, they could just use residential proxy botnets.
Why allow random requests coming from the clouds?
However, they could just use residential proxy botnets.
I believe the future is static resources with dynamic apps being only offered to people who can authenticate. And even then I’d recommend grandfathered accounts (eg telegram users that had an account for at least a year).
You may aswell silently drop the packets if they don't adapt.
That sort of thing was very common long before agent based abuse scanners. Volume would wax and wane but never went away.
Though other scans for vulnerabilities have shot up in frequency now everyone script kiddie and their flee-bitten mutt can ask an AI to do it for them.
We had some SSR that followed up with JavaScript listeners to do interactive updates instead of loading a whole new page. But the team responsible didn’t add nofollow and some bots ignore it anyway. Some significant fraction of our cluster size was answering those requests. But one deployment someone broke the fuck out of those links and it showed up immediately in our 4xx error statistics and we rolled the change back within a week.
Three years later I was still seeing those busted URLs being submitted.
Then the fix for the nofollow got implemented and declared done but the flag never got made permanent. We were pretty peeved when someone learned that in some offhand comment in a conversation between teams.
We were already identifying “good” and “bad” bots at the border and telling them to fuck off, so all of this was coming from our supposed friends. And that’s when I realized that a company owning a search engine and a cloud service provider is a protection racket. Google cloud is selling you servers in order to be talked to by Google bots.
If a legitimate request later comes from that address, it will probably get through.
But not sure how well iptables handles checking every connection against a list of possibly hundreds of thousands of addresses.
Someone hack a payment gateway into every webserver and MCP and let's get the bloodsuckers to pay for the internet.
This has been going on for FAR longer than LLMs have existed. We call it "internet background radiation", because it's everywhere; it usually shows up within minutes of a host coming online. Or just about immediately after your first LetsEncrypt certificate gets issued.
Pretty much every infosec company of non-trivial size runs one set. The old venerable services are Shodan and Censys. Then there are a various security "researchers" who like to point their crapware vulnerability "scanner" at a subnet or ASN and let it rip.
And then there are of course all the actual botnets and low rent access broker wannabes trying to pop shells where ever they can, so they can resell that access.
Not even third party login worked (Google, Linkedin, ...) to curb this.
They were logging in, scraping the client API for vulnerabilities/possibilities and then spammed erotic dog poems to Claude Fable until the $5 welcome credit got drained.
Fun New World.
$5 minimum to sign up
It’s really starting to suck. The worst part is these are coming from consumer vpn providers that we can’t just block (lots of real users paying real money on our service are vpn users) or they come from big residential isps. The whole residential relay thing is a hard adversary, since it’s spread across so many real users paying ips that you can’t whackamole it. I’d say 1% of residential ips are participating in a botnet (there’s prob some real numbers out there if I cared to look).
This is just going to push everyone harder into walled gardens. Web input biggest inbound but our content is our mote, we are going to have to turn off non logged in content viewing, which will have real business impacts.
That's a big reason that I never post any of my apps here.
Welcome to hell, kid...
On the other hand, “multiple times per minute” doesn’t seem that high? Even if it was 60x per min that’s fully within the limits of what a 2015 laptop in the closet can handle.
That sort of behavior would justify a name and shame imo
Inconsiderate shitty services don’t deserve the politeness of protecting their name
Though they probably use the cheapest possible models they can so the damage from their dumb business model would be limited
[0]: https://news.ycombinator.com/item?id=43826798
Why not a CDN?
Thankfully they were not really malicious like some of the other folks have experienced, but it was still frustrating.
Disclosure: I work for Friendly Captcha, which uses the above strategy.
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.
I realized its much faster to do the "google thing" just with chatgpt. Its filters all the sh!t for you. Searching the net frustrates me most of the times this days. Search engines are software for an older generation of the www.
>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! ;)
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.
Just merely existing will get you scanned these days.
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.
* I wanted an elixir version so I could run it alongside my existing apps instead of having it sit as a proxy in front of them. This way my existing apps can validate if the caller is already whitelisted and if not redirect to the challenger https://sphinx.8by3.com which sends you back to a site if you pass eg. https://tuhat.net
My main reason for planning to implement something like that myself instead of something off the shelf is two-fold:
1. The points mentioned above
2. I can be a dick and make some subsets do harder work (longer challenges, adding time delays that wouldn't phase a bot) - “hi there North American IP, I know how much you like extra hassle hence the love of effectively paying for tarriffs, here, have a little extra work on me!”
I'm assuming you're outside the US based on having this idea.
You might as well just say "I'm mad at your country for the tariffs, so here's an extra wait." From the fact you feel the urge to spite people in a tariffing country like this, it's clear the tariffs have had some negative effect on you, which goes against your narrative that they're "effectively paid for" by those in the tariffing country who voted for it.
If you think your nagware is going to get back at US citizens for completely unrelated policies you're mad about, then maybe you should list those policies in your message instead of bringing up tariffs? That seems like it would be more productive to your goals, and less likely to make it look like you're salty and/or making a faulty argument regarding tariffs.
Some people, yes. I'm not claiming to be a good person, especially not that this makes me one. Some of my interactions on social media are similar - I do it to vent a little, and for a little dopamine hit & mental health boost, or just because I need a short escape from work/chores/other for a few minutes and the get-some-fresh-air, or play-with-the-cats options are not available at the time. I call it my “breakfasts with the Percy's”.
For the record I, except for very rare occasions, don't downvote: I either comment or move on. Most likely the people that have downvoted have done so not because they disagree with you (maybe they do, maybe they don't) but because that post was the point we stepped too far off-topic, so perhaps try not to take that personally.
> more productive to your goals
Why do I need to be working to a world changing goal beyond a bit of “isn't the regime over there a bunch of great steaming wazzocks?” banter that might amuse some people I like, and maybe irritate some who I disagree with¹? Some things are just little in-jokes, not everything has to be for grand effect in some more meaningful agenda.
--------
[1] though they'll likely never see it, this is stuff I only put online for me and a few family/friends, including a couple state-side. Even the scraper bots haven't found it yet (the look-for-known-vulnerable-software scanners pass by regularly, so that is likely only a matter of time) so I doubt a mass of random human visitors are ever going to flow in.
> I can be a dick and…
> I do it... for a... mental health boost...
Sounds like a very healthy mental health regime, LOL.
You're now arguing that "it's not that serious, bro, it's just a joke." But my point in the first place was that the "joke" made no sense.
I'd be surprised if many don't run basic JS, given how many sites require it for basic content these days (load base site, then make a fetch request for the actual content), unless there are less such sites than I think.
> One thing I've seen that is interesting'ish is bots failing as they answer the challenge from a different IP than it was requested from, and the source IP is validated as part of the response so they fail.
From what little I've looked into the details, it seems that scrapers (both old and new) using a scattering arrangement (built in or via an outgoing proxy) seem to be split 75/25 between those that completely scatter (following requests will almost certainly come from a different address) and those that stay on the same address for at least the first few requests (which would cover login, bot challenge, or such) then move around to avoid requests-per-source-address based resource management measures. Only really simple ones (someone running a recursive wget without proxy) stick to the same source address all the time now.
Unfortunately you can't be more strict about changing source addresses because of how many false positives you will see. CGNAT arrangements often move people between addresses fairly regularly, and even without that there is the common case of people moving away from a WiFi AP and automatically flicking to their mobile network (or another nearby AP).
Some people liked my work, found me on LinkedIn and sent a connection with a positive message. Other people tried every which way to SQL inject or attack the site, posted slurs in every available input, etc.
Someone copied the site and hosted their own version with a couple minor changes. I only found that one because they had left one of the links in, which gave me referring traffic from their copy.
The internet is a floodgate of different actors, many of which are automated, and a link posted somewhere like HN opens the valve especially wide.
https://pagespeed.web.dev/analysis/https-sprinklz-io/bmc4mv1...