For one simple reason that I have outlined ages ago already (and that you yourself have already proven just today but obviously failed to realize): Traditional approaches are typically IP based in one way or another. They are helpful, but - as we can see from the residential proxy problem - can only solve issues up to a certain point. From there you need behavioral analytics and for those to use the full set of possibilities those need knowledge about the application, its contents, its typical usage patterns and other things like that. While this analysis and deflection has not necessarily to happen at the border or within the application (and rather should not from a classical architectural perspective) the knowledge about patterns and behaviour has to come from the application. Who, I ask you, would be better suited to enable this than the people that built that application and for that reason know it inside out and can deal with it in a responsible way w/o collateral damage, better than any add on dev could?
This is incorrect. You’re broadly right about the shape of the problem, but not about where the responsibility or solution sits.
IP-based approaches are still needed. Crucial, in fact. A lot of what we’ve done over the last 12 months has been around IP reputation, ASN reputation, and identifying traffic that should never be allowed anywhere near PHP in the first place. That is not an application-level decision. It is something that needs to be shed before the request reaches the application, ideally before nginx has done much meaningful work either.
We have seen a huge reduction in issues on XenForo Cloud simply by identifying and blocking traffic from sources that are consistently abusive: random data centres, certain hosting providers, obvious automation networks, and so on. That alone has shed a very significant amount of traffic before XenForo is involved at all.
And Anthony’s point is a fair one. How is it possible for someone to spin up thousands of GCP/AWS/etc. instances and start hammering random websites without those providers having any meaningful responsibility for the abuse coming from their networks?
You’ve seen the numbers yourself. Tens of thousands, sometimes hundreds of thousands, of guests hitting a forum. Even if XenForo had a comprehensive internal ban list, that still means the request has already travelled through the network, hit nginx, started PHP, bootstrapped XenForo, and likely touched session/cookie/routing/permission code before the application can even decide to reject it. At that point a large part of the cost has already been paid.
Yes, the harder problem now is residential proxies. But that still does not mean the answer is “XenForo core should solve it inside the application”. There are already plenty of places to see the shape of abuse: Cloudflare, nginx access logs, centralised logs, server metrics, etc. If thousands of unique IPs suddenly start hitting /threads/<id> URLs, you do not need deep XenForo internals to know something is wrong. You need something capable of slowing or shedding that traffic before it becomes PHP/MySQL work.
By the time XenForo is handling a thread request, it has already done a non-trivial amount of work. PHP has started, XenForo has bootstrapped, routing has happened, guest/cache/session/cookie handling may already be involved, and the request is on its way to controller logic. An add-on can do some defensive checks in that path, and some of them may help. But they cannot make that request cost zero. They are still downstream of the expensive part of the stack.
That is the point I keep making.
This is not me saying “nothing can be done”. Clearly things can be done, because we have done them on our own infrastructure. The guest numbers here have dropped dramatically from the worst bursts you mentioned, and the server is coping far better than it was. But that has not required special XenForo application analytics. It has required operating the infrastructure properly and using the tools available at the server/CDN/proxy layer.
XenForo Cloud is different because we operate that infrastructure. We control the servers, the logging, the firewalling, the proxying, the rollout process, and the operational response. Self-hosted installations are not the same thing. We provide the software; you operate the server.
We can continue improving XenForo itself. We can optimise hot paths, improve cacheability, avoid unnecessary work, and document sensible approaches. But if the expectation is that XenForo should compensate for every self-hosted customer’s lack of server/CDN/firewall expertise, that is not realistic.
Running a public web service in 2026 involves dealing with abusive traffic. If you self-host, that responsibility sits with you or with whoever you pay to manage your infrastructure. That is not unique to XenForo, or forums, or PHP software. It is the current reality of operating anything on the public internet.
Sure. But as possibly everyone has recognized these classical ways of protection are no longer good enough - they miss a very relevant part of the problem and this is due to a structural problem they cannot solve.
But they are good enough. That's what we've proved just by adding a couple of rules to Cloudflare?
But with traditional setups you will only manage to shrink the issue, not to solve it and you will miss quite a bit of bots/unwanted traffic. Still it is beneficial b/c this enables you to look closer at what's left at a second stage w/o overloading the application.
Well, it's solved here without further intervention needed. I'm not aiming to get the guest counts to zero, obviously. Yes, some bots might come through, but that doesn't matter. Cumulatively they're failing to have an effect and that's what matters. Spending engineering time on solving the problem at the application layer which might itself end up getting defeated is a waste of time and the fool's errand.