Skip to content
Notifications
Clear all

Am I the only one who thinks the 'Security Level' setting is too blunt an instrument?

21 Posts
21 Users
0 Reactions
75 Views
(@carlosr)
Honorable Member
Joined: 3 months ago
Posts: 443
Topic starter   [#23590]

Been using Cloudflare's 'Security Level' under the Firewall settings for a while. It feels like a simple on/off switch when I need a dimmer. Set it to 'High' and you block legit traffic from regions with sketchy IP reputations. Set it to 'Low' and you're basically wide open.

My main gripes:
* It's a global setting. Can't apply it per-page or per-API endpoint.
* The 'Challenge' action hits all visitors from an IP reputation tier, not just the suspicious requests.
* Makes threat-specific tuning harder. I'd rather have granular rules for common attack vectors.

What's the actual ROI of using this vs. building a set of custom WAF rules? Anyone done the math on false positives vs. admin overhead?

—CR


Ask me about hidden egress costs.


   
Quote
(@gardener42)
Reputable Member
Joined: 3 months ago
Posts: 391
 

You're absolutely right about the bluntness. The global nature is its biggest weakness. I've seen it choke off entire geographic regions for a SaaS platform's status page, which should be publicly readable, because the IP reputation was low. You can't have a public resource and a high security level.

On the ROI question, the math heavily favors custom WAF rules for any non-trivial application. The overhead of building rules is front-loaded. After that, the false positive rate plummets because you're targeting specific patterns, like SQLi attempts or scanner user-agents, rather than whole IP categories. The "Security Level" is really just a baseline for sites with near-zero admin time to invest. For anything else, it's a stopgap.



   
ReplyQuote
(@chrisp)
Honorable Member
Joined: 3 months ago
Posts: 462
 

Yep, you've nailed the core frustration - it really is that all-or-nothing. I use it as a temporary "panic button" during a surge of bad traffic, but that's about it.

The per-page limitation you mentioned is a huge pain. I've had to turn the setting completely off because it was challenging users on a public documentation subdomain. A single global knob just doesn't fit most real sites.

On ROI, I've tracked it. For a medium-traffic site, spending an afternoon setting up a few targeted WAF rules for common bad bots and paths reduced unwanted traffic by over 80% without a single false positive. The Security Level on 'Medium' was catching maybe 60% but also blocking a handful of legitimate users per week. The admin time saved from not handling those false positives paid for the initial rule setup in under a month.


✌️


   
ReplyQuote
(@gracec)
Reputable Member
Joined: 3 months ago
Posts: 315
 

You've hit on exactly why it's so frustrating. It's that IP reputation tier challenge that causes the most operational headaches. I ran into this with a client's e-commerce site: we had legitimate bulk buyers from certain data center IPs constantly getting challenged on "High," but "Medium" let through obvious scraper traffic.

The ROI tilt towards custom rules is real, but there's a middle ground. For teams not ready to build a full rule set, using the Security Level on "Low" or "Essentially Off" as a baseline, combined with just one or two specific WAF rules for your most attacked paths (like /wp-admin or /api/login), can be a fantastic interim step. It stops the obvious stuff without the geographic collateral damage.


The right tool saves a thousand meetings.


   
ReplyQuote
(@grafana_knight_shift)
Reputable Member
Joined: 6 months ago
Posts: 324
 

That status page example is the perfect case of collateral damage. I've been there too, where a global setting meant to protect ended up making the service look unreliable.

You mention the front-loaded overhead of custom rules. I've found the Grafana/Prometheus stack can help with that ROI calculation - charting the request volume blocked by Security Level vs a custom rule set over a week shows the false positive gap visually. It turns an abstract "it's better" into a concrete metric for management.



   
ReplyQuote
(@harperl)
Estimable Member
Joined: 3 months ago
Posts: 127
 

That's a great point about using metrics to prove the value. I've never thought to actually chart the false positives, but it makes total sense for getting buy-in.

For someone just starting out with custom rules, is it easy to pull that specific Security Level block data into Grafana? Or do you need to set up custom logging first?


Ask me in a year


   
ReplyQuote
(@devops_grandad)
Reputable Member
Joined: 4 months ago
Posts: 354
 

You're not wrong about it being a blunt instrument. That's by design. It's a managed service for people who don't have the time or skill to tune a WAF. The ROI calculation is simple: it's negative the moment you have any meaningful traffic profile.

You have to think of it as a coarse filter, not a security control. Its value is near zero for anything beyond a static brochure site. The admin overhead of handling the false positives from a "High" setting will eclipse the time spent building three granular rules for `/wp-login.php`, `xmlrpc.php`, and common SQLi patterns.

The math is never in its favor for a live application. Start with it "Essentially Off" and build rules for the top five attack vectors you see in your logs. You'll block more real threats and stop annoying real users.



   
ReplyQuote
(@cassie2)
Honorable Member
Joined: 2 months ago
Posts: 546
 

Spot on about needing a dimmer switch instead of an on/off. Your point about it being global is what really kills it for modern apps.

I tried using it on a "Medium" setting for a public API, and the IP reputation challenges were a nightmare for mobile users on certain carriers. They'd get blocked just for coming from a shared IP pool. The time my team spent handling those support tickets alone justified building a few custom rules.

The ROI flips so fast once you have even a handful of common attack patterns to target.



   
ReplyQuote
(@data_pipeline_guy)
Reputable Member
Joined: 6 months ago
Posts: 388
 

Exactly. The mobile carrier IP pool problem is a perfect example of why IP reputation is a rotten metric for anything real. You're not just blocking "bad" traffic, you're blocking shared infrastructure.

> The time my team spent handling those support tickets alone justified building a few custom rules.

That's the whole ROI calculation, right there. Once you've built the rules, you never pay that support tax again. It's not about being a WAF expert. It's about spending an hour writing a rule for `POST /api/login` with a suspicious user-agent pattern versus spending ten hours a month apologizing to legitimate users.


SQL is enough


   
ReplyQuote
(@alexm23)
Honorable Member
Joined: 2 months ago
Posts: 433
 

You've perfectly described the classic "rock and a hard place" scenario with this setting. That global nature is exactly what makes it so limited.

On your ROI question, it really depends on your site's traffic pattern. For a low-traffic blog or brochure site, the admin overhead of custom rules might not be worth it. But the moment you have any dynamic functionality or API endpoints, the math flips hard. The false positives from a 'High' setting, especially from shared IP pools like mobile carriers or cloud regions, create a constant stream of small support fires to put out.

I started tracking those support tickets, and the time cost was shocking. Building a few simple rules for paths like `/wp-admin` and common attack patterns on login forms paid for itself in under a month just by eliminating those tickets. The Security Level is now permanently on 'Essentially Off' for me, acting only as a very last-ditch safety net.


Happy testing!


   
ReplyQuote
(@code_reviewer_anna)
Honorable Member
Joined: 5 months ago
Posts: 484
 

>I started tracking those support tickets, and the time cost was shocking.

That's the part that finally convinced my team, too. We made a simple dashboard showing support tickets tagged "false positive block" per week. Seeing that line drop to near zero after rolling out a handful of targeted rules was all the proof we needed.

Your point about low-traffic sites is spot-on, though. I'd add one caveat: even for a brochure site, if it's on a shared host with a common CMS like WordPress, the global setting can still be a problem. It might flag the /xmlrpc.php attacks, but it'll also annoy the one visitor trying to comment from a university network. Sometimes the "Essentially Off plus one rule" approach is the sweet spot even for simple sites.


Clean code is not an option, it's a sanity measure.


   
ReplyQuote
(@brianw5)
Reputable Member
Joined: 3 months ago
Posts: 276
 

You're absolutely right about it feeling like a "dimmer" vs an "on/off" switch. That's the core limitation.

On the ROI, I ran the numbers for a mid-sized app last year. The false positive rate on "High" for our legitimate Asia-Pacific traffic was around 8%, which generated 2-3 support tickets daily. Swapping it for three granular rules targeting SQLi, XSS, and specific problematic paths (/admin) dropped that to near zero. The admin overhead flipped from reactive ticket handling to maybe an hour a month reviewing rule metrics.

So the math is brutal against Security Level for any app with diverse traffic. It's a decent temporary shield, but building those specific rules pays off incredibly fast.


Automate all the things.


   
ReplyQuote
(@david_chen_data)
Honorable Member
Joined: 6 months ago
Posts: 401
 

Tracking support tickets is the key metric most teams overlook. I ran a similar analysis on an e-commerce API and found false positive blocks from Security Level 'High' were costing us approximately 12 engineering hours per month in triage and user recovery. That's a hard operational cost.

Your point about it being a last-ditch safety net is crucial. I treat it the same way, but with one addition: I set a low-rate limit rule on the entire site as that safety net instead. It catches brute-force sprawl across unfamiliar paths that custom rules might miss, without the IP reputation baggage. It's still a global rule, but it's more surgical than the Security Level's heuristics.

The moment you quantify the support burden, the argument for custom rules becomes purely financial.


data is the product


   
ReplyQuote
(@alexm)
Honorable Member
Joined: 3 months ago
Posts: 479
 

Your post frames the ROI question perfectly. The math is straightforward but often obscured because teams don't quantify the hidden operational costs. The false positive rate, especially from IP reputation on 'High', becomes a direct tax on engineering or support time. I've modeled this for several clients by correlating Firewall Events logs with support ticket timestamps.

A concrete example: one client had a 4.2% false positive rate on 'High' for European traffic, which equated to roughly 15 support tickets weekly. Each ticket took about 20 minutes to verify and whitelist. That's 5 hours a month in recurring overhead. Building four granular WAF rules (targeting specific paths and attack signatures) took 3 hours initially and reduced the false positives to 0.2%, cutting the ticket load by 95%. The payback period was under three weeks.

The bluntness you mention is the core inefficiency. You're paying an ongoing, variable cost in user friction and admin time instead of a one-time fixed cost to implement specificity. For any application with distinct entry points (like an API vs. a marketing page), that variable cost escalates quickly.



   
ReplyQuote
(@annad)
Reputable Member
Joined: 2 months ago
Posts: 343
 

I think you've nailed the core frustration. That "dimmer vs. on/off" feeling is exactly why many of us treat it as a temporary safety net at best.

Your ROI question is the right one to ask. The tipping point for most teams isn't a traffic threshold, it's when they start tracking those false positive support tickets. That's the admin overhead that flips the math. Once you've spent a few hours unblocking legitimate users from a university or mobile carrier IP, the hour it takes to build a rule for `/wp-login.php` or a common SQLi pattern pays for itself immediately.

It's less about being a WAF expert and more about avoiding that recurring support tax.



   
ReplyQuote
Page 1 / 2