Login
You're viewing the discuss.systems public feed.
  • Oct 16, 2026, 11:03 AM

    Today's badly-written residential proxy AI crawler fun: 5.8 million requests from 2.3 million unique IP addresses in 24 hours for a site with 12,000 static pages that hasn't changed since 2003. Most of these requests are from consumer networks and pretending to be real browsers. As many other folks have noted, it's becoming increasingly difficult to mitigate the impact of these attacks.

    💬 3🔄 58⭐ 63

Replies

  • Oct 16, 2026, 11:31 AM

    @beasts any advice on mitigating these? Our small family business is an e-commerce store with over 10,000 of our badge designs added over 20 years. Self hosted. We’ve tried cloudflare but never quite sits right and always hurts our rankings. We get bombarded daily. Imunify360 has helped but it’s like the hoardes.

    💬 1🔄 0⭐ 1
  • Oct 16, 2026, 12:10 PM

    @jodsclass no easy solutions, I'm afraid. The plague of residential proxies makes IP-based filtering ineffective, and the bots are increasingly good at impersonating legitimate users. Best thing you can do is serve as much as possible statically, although for the volume we've seen over the last 24 hours, even that isn't enough.

    💬 0🔄 0⭐ 4
  • Oct 16, 2026, 12:20 PM
    @jodsclass I've had some success with ad hoc filters, like blocking access to local search engines or other expensive pages to visitors without session cookies, but it is not perfect and often temporary at best.

    @beasts
    💬 0🔄 0⭐ 0
  • Oct 16, 2026, 2:40 PM

    @nono @jodsclass @beasts I've found that a lot of bots hit lots of invalid pages as well. If you have enough control and can use Fail2ban then you can block a lot of them after they first request a dot-file (like .env) or a bunch of config file paths.

    Doesn't help for lots of the initial bots, but it's amazing how many proxy IPs it does catch.

    I've also put something like the session cookie thing on my dynamic site. No referer? You get a simple "sorry, bots are ruining everything" message and a link back to the page that should then give a referer.

    Doesn't even need to be a legit referer. I don't check that it's valid. Just that there is a value. Because the number of people hitting my site not via a link is tiny. And for now many of the bots don't pass a referer. Legit bots get a pass based on user agent string matching.

    💬 0🔄 0⭐ 0
  • 💬 3🔄 0⭐ 3
  • Oct 16, 2026, 4:33 PM
    @beasts Here I'm talking about dropping the connection early if at all possible (return 444 in nginx), or at least returning 403 or 429 as soon as possible from the application code if this is the best that can be achieved. I tend to use identifiable return codes and feed them into fail2ban rules to block repeat offenders, even though these are a (very small) minority nowadays.

    @ibboard @jodsclass
    💬 0🔄 0⭐ 0
  • Oct 16, 2026, 5:25 PM
    At that point blocking ranges of IP addresses may be the way to go.

    If your capacity is limited to a certain number of requests per second, then it's better to spend that capacity on prefixes with a higher percentage of legitimate users. Prefixes with a high percentage of abuse can be aggressively rate limited.

    The abuse may still cause some degraded experience for a small subset users, but it will be better than letting the service break down under the load and cause bad experience for all users.
    💬 1🔄 0⭐ 0
  • Oct 16, 2026, 5:30 PM

    @kasperd @jodsclass @nono @beasts I've considered that for my servers. I block all of China because it's basically 99.9999% junk (and I'm not convinced that most of the real users will get out past the Great Firewall). And I've started blocking ranges for AWS, Google Cloud, etc

    But it feels bad that we're at the point of having to block every residential connection in Vietnam, West Africa, and sometimes even the USA just because of this abusive behaviour. Residential proxies have huge scope for collateral damage (which is why they do it).

    If governments don't start legislating against it then we'd need big websites to start putting in "you're blocked because your IP has been seen hosting a botnet - here's how to check whether your TV is doing stuff you didn't know about" messages on their sites to start to turn things around. Or maybe CloudFlare needs to start doing it for their customers (even for legit connections, if the IP has a bad rep)

    💬 1🔄 0⭐ 0
  • Oct 16, 2026, 5:53 PM
    There are some companies who seem to not care about collateral damage and will happily block legitimate users who happen to have an IP address in the vicinity of a perceived abuser.

    But if you do care and are willing to spend some time adjusting your blocking logic, I think it's feasible to not block too aggressively. I am certainly making an effort to get this right on systems with paying users.

    It is definitely harder to deal with this if NAT is involved because you may have abusers sharing an IP address with legitimate users. With IPv6 it does require some effort to dynamically identify the correct prefix length to block, but it's doable. That's better than the IPv4 case where a /32 is sometimes blocking too much.

    Blocking too much is a problem because once legitimate users try to work around excessive blocking it becomes even harder to distinguish between abuse and legitimate requests.
    💬 0🔄 0⭐ 0
  • Oct 16, 2026, 5:51 PM

    @beasts @ibboard I've been wondering if subnet or AS-level connection rate limits would be effective, or if there's some kind of signal at the DNS level. Or if there's some kind of response that gets them all to collectively lay off a bit, like throwing some faked 500s.

    What a nightmare.

    💬 1🔄 0⭐ 1
  • Oct 16, 2026, 6:00 PM

    @zip @beasts Subnets are a nightmare and need a separate database. When I'm manually adding abusive blocks then I do a lookup on the IP and check its subnet, then check adjacent blocks in case they're the same provider. I've got everything from /10s to /24s in the list. Mostly /19 to /24s.

    And sometimes a company has consecutive /17 through to a /22 ranges because the final /22 of the /16 range was sold off to someone else at some point (or maybe they bought it up piecemeal - because it is normally a cloud provider or other large network who might buy up IPs as IPv4 ran out).

    I wish there was an AS-based way to do it, but I haven't found a way to do it yet. Even the WhoIs sites that list ASNs don't always list an IP range/ranges for the block.

    💬 1🔄 0⭐ 0
  • Oct 16, 2026, 6:52 PM

    @ibboard @beasts aye. I've poked at this too and it looks like a real mess. And it still assumes that the traffic is nonuniform relative to the baseline, and I've a horrible feeling that it isn't.

    I guess the next step would be to build that hilbert curve visualisation of IP space to see what jumps out.

    … I really should have gotten a job at CloudFlare or Fastly, I'd probably absolutely love and hate trying to solve this for a living

    💬 0🔄 0⭐ 1
  • 💬 0🔄 0⭐ 0
  • Oct 16, 2026, 3:53 PM
    @beasts I've heard very good results using iocaine with the author's configuration ? Have you had the chance to try it ?
    💬 1🔄 0⭐ 0
  • Oct 16, 2026, 4:33 PM

    @rakoo we've not, but it relies on being able to successfully identify the bots. Looks like it uses a list of AI bot user agents -- that definitely doesn't work.

    The traffic volume we've seen is now a problem for purely static sites. We haven't got the resources to feed them generated garbage, even if we could identify them.

    💬 1🔄 0⭐ 0
  • 💬 0🔄 0⭐ 0