Lab URL: innovative-trailblazer.sxplab.com
| Field | Value |
|---|---|
| Prepared by | Eduard Agopyan - Nanosek |
| Date | February 03, 2026 |
| Customer | AcmeCorp (e-commerce platform) |
| Region / scope | Southeast Asia, Europe, and the United States |
| Environment | Managed lab – multi-origin (origin1/origin2), staging, API, and support hostnames |
| Lab identifier (slug) | innovative-trailblazer |
| Objective |
Deliver a Cloudflare Application Services configuration that improves performance, security,
and operational visibility for innovative-trailblazer.sxplab.com and related hostnames
in line with the lab requirements.
|
This report documents the Cloudflare configuration delivered for AcmeCorp’s lab environment on
innovative-trailblazer.sxplab.com. The lab covered multiple hostnames:
innovative-trailblazer.sxplab.com,
staging.innovative-trailblazer.sxplab.com,
support.innovative-trailblazer.sxplab.com,
api.innovative-trailblazer.sxplab.com,
origin1.innovative-trailblazer.sxplab.com, and
origin2.innovative-trailblazer.sxplab.com.
We established DNS and SSL/TLS foundations, optimised global performance and bandwidth usage, enforced secure HTTPS end-to-end, restricted staging access by geography, and hardened the application with WAF managed rules, Bot Management, and account-takeover protections. Application behaviour was customised for API, support, and internal status endpoints. For advanced configuration, we implemented regional load balancing between Singapore and Frankfurt, tuned OWASP behaviour around false positives, deployed a WAF “watcher” Worker for managed-ruleset drift, and enabled Page Shield with notifications for third-party JavaScript changes.
The design follows a standard Cloudflare SRA pattern: strict TLS and WAF baselines, safe but effective static
caching, geo-aware load balancing between origin1/origin2, and dedicated controls for
API, admin/support, staging, and “login-like” surfaces, all backed by analytics, notifications, and an HTML
handoff report for ongoing tuning and audit.
Each answer below maps directly to a lab question. For every item we describe the configuration delivered, the outcome & rationale, and the validation performed, with visual evidence referenced as numbered figures (for example, “see Figure 4a”) throughout the document.
High level: All lab hostnames terminate on Cloudflare’s global edge. End users in Southeast Asia, Europe,
and the US connect to the nearest Cloudflare POP, where traffic is accelerated and protected (CDN, WAF, Bot
Management, DDoS, Access, Workers). From there, requests are either routed directly to the staging/support/API
hostnames or passed through the Load Balancer, which steers traffic to the closest healthy origin
(origin1 in Singapore or origin2 in Frankfurt).
Figure 0: Target architecture – Cloudflare edge fronting all lab hostnames and steering traffic between regional origins.
innovative-trailblazer.sxplab.com and all required subdomains were delegated to
Cloudflare and managed within a single Cloudflare account.
20.88.188.200, 4.157.169.241,
52.191.5.18, and 52.170.37.97 were reachable and correctly configured to respond
to the expected host headers.
| Requirement area | Cloudflare features delivered (summary) |
|---|---|
| Basic Setup | Zone onboarding; DNS records for all lab hostnames; proxying via Cloudflare edge; verification of reachability. |
| Performance & Delivery | Cache Rules, browser cache controls, Brotli, HTTP/2 and HTTP/3, geography-aware delivery, and geo restrictions for staging. |
| Security & Threat Protection |
WAF managed rules and custom rules, protection for critical endpoints, geo-restricted access to
/contact, Bot Management on targeted paths, and account-takeover safeguards.
|
| Application Behaviour Customisation |
Header enforcement for the API, support page redirection to the dedicated hostname, and special handling
(caching + access control) for internal /status* paths.
|
| Advanced configuration | Regional Load Balancing between Singapore and Frankfurt with health monitoring and pinned paths, WAF fine-tuning workflow, and Page Shield configuration for third-party JavaScript on key journeys. |
| Visibility & handoff | Analytics dashboards for threats, bandwidth savings, and performance improvements; documentation and screenshot pack summarizing the delivered configuration and known considerations. |
TL;DR: Configured Cloudflare-proxied A records for all lab hostnames pointing to the requested origin IPs and verified reachability via DNS lookups and Ray IDs.
Cloudflare features used: DNS (proxied A records), CDN reverse proxy, Security Events / Ray ID.
Configuration delivered: Configured Cloudflare DNS with proxied A records for all required hostnames, matching the lab’s IP assignment:
innovative-trailblazer.sxplab.com – A record to 20.88.188.200, proxied through
Cloudflare.
staging.innovative-trailblazer.sxplab.com – A record to 20.88.188.200, proxied.
support.innovative-trailblazer.sxplab.com – A record to 20.88.188.200, proxied.
api.innovative-trailblazer.sxplab.com – A record to 4.157.169.241, proxied.
origin1.innovative-trailblazer.sxplab.com – A record to 52.191.5.18, proxied and
used as the Singapore origin in Load Balancing.
origin2.innovative-trailblazer.sxplab.com – A record to 52.170.37.97, proxied and
used as the Frankfurt origin in Load Balancing.
Outcome & rationale: All required hostnames are consistently routed through Cloudflare, providing a single control plane for performance, security, and advanced traffic steering while matching the IP assignments defined in the lab brief.
Validation performed:
Used dig and nslookup to confirm that each hostname resolved to the correct IP
address, and accessed https://innovative-trailblazer.sxplab.com via a browser to verify that
responses included a Cloudflare Ray ID, confirming end-to-end connectivity through the proxy.
Evidence:
Figure 1: DNS configuration for all lab hostnames.
Configuration delivered: To address inconsistent load times across Southeast Asia, Europe, and the US, we configured Cloudflare’s performance features in layers:
/assets/*, /static/*, and other immutable file extensions are consistently
eligible for edge caching and use a stable cache key. The specific edge and browser TTL values are tuned
separately in Answer 3.
Outcome & rationale: Static content is now served primarily from Cloudflare’s edge cache, while dynamic and non-cacheable traffic benefits from protocol-level optimisations and Argo Smart Routing. Image payloads are smaller, round-trips are faster (HTTP/2, HTTP/3, TLS 1.3, 0-RTT), and browsers receive Early Hints to start loading key assets sooner. Together, these changes improve page-load times across SEA, EU, and US without requiring any application refactoring.
Validation performed:
CF-Cache-Status: HIT.
curl -v to verify negotiated protocols
(h2/h3), the presence of TLS 1.3, and 0-RTT resumption where supported.
Evidence:
Figure 2a: Cache Rules for static assets.
Figure 2b: Speed & optimisation feature set.
Figure 2c: Argo Smart Routing enabled for dynamic traffic.
Advanced recommendations (production-ready options):
TL;DR: Building on the static-asset Cache Rules defined in Answer 2, we set edge cache TTL to 10 minutes and browser cache TTL to 5 minutes for frequently accessed assets to cut origin bandwidth while keeping content reasonably fresh.
Cloudflare features used: Cache Rules (Edge TTL, Browser TTL), cache-control override, Cache Analytics.
Configuration delivered: To reduce repeated origin data transfer and server load for frequently accessed files, we:
Cache-Control headers did not conflict with the intended behaviour,
overriding them at the edge where necessary using Cache Rules.
/static and /assets/,
but adapted to the real application layout where images and static content are actually served under paths
like /services and /images. To ensure we still targeted all relevant static files,
we added an extra condition in the Cache Rule expression:
(lower(http.request.uri.path) matches r#"\.(css|js|mjs|map|png|jpe?g|gif|webp|avif|svg|ico|woff2?|ttf|eot|otf|pdf|mp4|webm)$"#)
Outcome & rationale:
Frequently accessed files are served from edge cache and revalidated less often at the origin, directly
reducing bandwidth usage and connection load on the backend while respecting the 10-minute edge / 5-minute
browser requirement. The extension-based condition ensured that all real static content (including assets under
/services and /images) was included, not just the theoretical /static and
/assets paths from the SRA description.
Validation performed: We:
curl against representative static resources (for example files under
/services and /images) and confirmed CF-Cache-Status: HIT on
subsequent requests, along with cache-related headers reflecting a 10-minute edge TTL and an effective
5-minute browser cache window.
Evidence:
curl output for a static asset under /services or /images demonstrating
CF-Cache-Status: HIT on repeat requests and cache headers aligned with the 10-minute edge /
5-minute browser policy (see Figure 3b).
Figure 3a: Cache Rule – edge and browser TTL with regex-based static asset matching.
Figure 3b: curl validation – CF-Cache-Status HIT and cache headers for a static asset.
TL;DR: Enforced HTTPS end-to-end with Full (strict) TLS, short-lived edge certificates from Google Trust Services, and a PCI-aligned cipher profile.
Cloudflare features used: SSL/TLS (Full strict), Edge Certificates (Google Trust Services), Always Use HTTPS, TLS encryption mode / cipher profiles.
Configuration delivered: To ensure all user traffic uses HTTPS with full end-to-end encryption and a compliant TLS posture, we:
Outcome & rationale: Traffic between end users and Cloudflare, and between Cloudflare and the origin, is fully encrypted under a validated TLS posture. The edge certificate lifecycle is automated using the Google Trust Services pipeline with short-lived certificates, and the negotiated cipher suites align with PCI DSS expectations, reducing the risk of weak or deprecated cryptography being used.
Validation performed:
curl -I http://innovative-trailblazer.sxplab.com and observed an HTTP→HTTPS redirect,
confirming that Always Use HTTPS is in effect.
Evidence:
innovative-trailblazer.sxplab.com showing
Full (strict) mode enabled (see Figure 4a).
curl -I http://innovative-trailblazer.sxplab.com output showing a 301 redirect to HTTPS
(see Figure 4c).
Figure 4a: SSL/TLS overview showing Full (strict) mode.
Figure 4b: Always Use HTTPS enabled.
Figure 4c: curl -I http://innovative-trailblazer.sxplab.com
confirming HTTP→HTTPS redirect.
Figure 4d: Edge certificates and Google Trust Services CA pipeline.
Figure 4e: PCI-aligned TLS cipher suite configuration.
Figure 4f: PCI-DSS cipher profile selection.
TL;DR: Locked down the staging hostname so only users in Singapore, Germany, and the United States can reach it; all other countries are blocked or must pass a Managed Challenge.
Cloudflare features used: WAF / Rulesets, Geo-IP conditions (ip.src.country),
Block / Managed Challenge actions.
Configuration delivered:
To restrict access to staging.innovative-trailblazer.sxplab.com so that only users in Singapore,
Germany, and the United States can reach it, we:
(http.host eq "staging.innovative-trailblazer.sxplab.com"
and not ip.src.country in {"SG" "DE" "US"})
ip.src.country is not in {"SG","DE","US"}, while implicitly allowing requests
from those three countries.
staging.innovative-trailblazer.sxplab.com, so production
and other hostnames remain unaffected by this geo restriction.
Outcome & rationale: The staging environment is accessible exclusively from Singapore, Germany, and the United States, reducing exposure to unwanted global traffic while keeping the production environment fully available worldwide. This aligns staging with a “limited collaborator regions only” model without impacting customer-facing sites.
Validation performed:
https://staging.innovative-trailblazer.sxplab.com triggered the geo rule and was blocked or
challenged as configured.
Evidence:
staging.innovative-trailblazer.sxplab.com using
not ip.src.country in {"SG" "DE" "US"} with Block / Managed Challenge as the action.
(see Figure 5).
Figure 5: Geo-restricted access to staging.innovative-trailblazer.sxplab.com.
TL;DR: Enabled OWASP-aligned managed rules globally for all lab hostnames and layered
stricter, dedicated managed rules on /services/safes and
/services/business-sales to harden those flows against zero-day exploits.
Cloudflare features used: WAF managed rules (OWASP), additional managed rules scoped to paths, Security Events.
Configuration delivered:
To protect against OWASP-class threats (SQL Injection, XSS, etc.) and add extra protection for
/services/safes and /services/business-sales, we:
innovative-trailblazer.sxplab.com and all related lab hostnames as a global baseline,
so that every request is evaluated against core application-layer protections.
/services/safes and /services/business-sales, using stricter actions and
sensitivity on these URLs to provide an extra shield for high-value flows.
These rules evaluate traffic on top of the global OWASP baseline, focusing specifically on these
two services.
Outcome & rationale:
The application benefits from broad, OWASP-aligned protection across all hostnames, while
/services/safes and /services/business-sales receive an additional layer of
managed-rule enforcement. This combination provides stronger zero-day and high-value endpoint protection
without over-constraining less critical parts of the site.
Validation performed:
Sent controlled test requests with benign but rule-matching payloads at
/services/safes and /services/business-sales and verified that the requests were
blocked or challenged by the dedicated managed rules, and that the associated events appeared with the
expected rule IDs in Security Events.
Evidence:
/services/safes and /services/business-sales, with stricter actions/sensitivity
on these paths (see Figure 6b).
/services/safes and /services/business-sales triggered by the scoped managed rules
(see Figure 6c).
Figure 6a: Global WAF managed rules baseline (OWASP).
Figure 6b: Dedicated managed rules on critical services paths.
Figure 6c: Security Events – blocked requests from managed rules on critical endpoints.
/contact
TL;DR: Restricted /contact so that traffic from Singapore is allowed normally, while
all other countries are gated behind a Managed Challenge.
Cloudflare features used: WAF / Rulesets, Geo-IP conditions (ip.src.country), Managed Challenge.
Configuration delivered:
To restrict access to /contact to IPs from Singapore while challenging all other traffic, we:
(starts_with(http.request.uri.path, "/contact")
and ip.src.country ne "SG")
/contact path where the source country is anything other than Singapore.
ip.src.country = "SG" are not matched by this rule and therefore proceed
without challenge.
/contact-specific geo policy is applied consistently.
Outcome & rationale:
The /contact endpoint is effectively prioritised for Singapore-based users while still allowing
the business to receive legitimate traffic from that region without friction. Access from all other countries
is not blocked outright but is challenged, adding friction for unwanted traffic and scripted abuse originating
outside Singapore.
Validation performed: Using country simulation / geo-testing and test traffic from different regions, we verified that:
/contact from IPs geolocated to Singapore passed without any Managed Challenge.
/contact from non-SG locations matched the rule, triggered a Managed Challenge,
and produced corresponding entries in Security Events with the expected rule name and action.
Evidence:
Geo-based WAF rule for /contact using
ip.src.country ne "SG" and Managed Challenge, plus Security Events entries showing challenges
for non-SG traffic (see Figure 7).
Figure 7: Geo-restricted and challenged access to /contact.
/services/checkboxes
TL;DR: Enabled JavaScript detections in Security settings and added a WAF rule that
challenges requests to /services/checkboxes when JS detection does not pass, filtering
out non-JS bots while keeping the flow usable for humans.
Cloudflare features used: Bot Management JS detections, WAF rulesets, Security Events.
Configuration delivered:
To identify and mitigate bot traffic targeting the /services/checkboxes area, we:
/services/checkboxes and JS detection has not passed, using the expression:
(starts_with(http.request.uri.path, "/services/checkboxes") and not cf.bot_management.js_detection.passed)
/services/checkboxes flow.
Outcome & rationale:
Requests to /services/checkboxes that do not successfully complete JS detection are
intercepted by the WAF rule and challenged or blocked. This reduces scripted and headless abuse
on this specific flow while real browsers (where cf.bot_management.js_detection.passed
is true) proceed normally.
Validation performed:
Simulated traffic without JS execution (for example, simple curl/headless clients) against
/services/checkboxes and confirmed that:
starts_with(http.request.uri.path, "/services/checkboxes") and not cf.bot_management.js_detection.passed
was triggered.
Evidence:
Bot / Security configuration showing JS detections enabled and the WAF rule expression for
/services/checkboxes, plus curl-based validation showing blocked/challenged
responses when JS detection did not pass (see Figures 8a and 8b).
Figure 8a: JS detections and WAF rule configuration for /services/checkboxes.
Figure 8b: curl validation – JS-detection-based enforcement on /services/checkboxes.
/contact
TL;DR: Enabled leaked-credentials detection and implemented three ATO-focused controls on
/contact: a WAF rule that challenges leaked credentials, a second WAF rule that combines
Cloudflare ATO detection IDs with leaked-credential similarity, and a rate-limiting rule that throttles
repeated failed “login-like” attempts. In addition, we deployed a Cloudflare Worker that logs leaked-credential
events, enriches them with Bot Management signals, and sends throttled alerts to Discord.
Cloudflare features used: Leaked credentials / ATO signal, Bot Management detection IDs, WAF custom rules, Advanced Rate Limiting, Cloudflare Workers + KV, Security Events.
Configuration delivered:
To detect and mitigate account takeover activity on the /contact endpoint, we:
ATO – leaked credentials on /contact that
challenges requests sending leaked credentials to this endpoint. The rule expression is:
(starts_with(http.request.uri.path, "/contact")
and cf.waf.credential_check.username_and_password_leaked)
ATO detection IDs + leaked credential signal that
combines Cloudflare ATO detection IDs with a similarity-based credential signal. The rule expression is:
(starts_with(http.request.uri.path, "/contact")
and any(cf.bot_management.detection_ids[*] in {201326593})
and cf.waf.credential_check.username_password_similar)
201326593 is Cloudflare’s documented example detection ID that
“observes all login traffic to the zone”. Combined with
cf.waf.credential_check.username_password_similar, this rule focuses on suspicious
login-like traffic that looks similar to known breached credentials, even if not an exact match.
ATO – failed attempts throttle on /contact, treating /contact as a
login-like POST flow:
starts_with(http.request.uri.path, "/contact")
and http.request.method eq "POST"
starts_with(http.request.uri.path, "/contact")
and http.request.method eq "POST"
and (http.response.code in {400 401 403 409 422})
http.response.code inside the counting expression so only failed
“login-like” responses increment the rate-limit counter.
log-leaked-creds-and-bot-info (throttled), with the following behaviour:
cf.exposedCredentialCheck / exposed-credential-check header) and, if present,
enriches the event with Bot Management fields:
verdict, score, and detection IDs.
log field)
and identifies the client IP and user agent.
LOGIN_LOG (keyed by client IP).
ALERT_TS:<clientIP> so that each IP can trigger at most one Discord alert
every 5 minutes.
DISCORD_WEBHOOK_URL) with:
leaked-credential flag description, Bot verdict/score/IDs, username, client IP, URL,
user agent, and a “Recent Attempts for this IP” section built from KV history.
Outcome & rationale:
/contact is now protected by:
(1) direct leaked-credential enforcement,
(2) an ATO heuristic rule that combines Cloudflare’s login-traffic detection ID 201326593
with credential similarity,
(3) a failure-aware rate limit that reacts to spikes in 4xx responses, and
(4) a high-level Worker that logs and correlates leaked-credential events with Bot Management telemetry,
keeps per-IP history in KV, and sends throttled alerts to Discord.
Together, these controls significantly reduce the likelihood of successful credential stuffing or account
takeover on this endpoint while providing rich, noise-controlled alerting for security operations.
Validation performed:
/contact and confirmed that the
ATO – leaked credentials on /contact rule triggered and enforced the configured action.
201326593 with
username_password_similar and verified that the
ATO detection IDs + leaked credential signal rule was evaluated and logged.
POST requests to /contact (with 4xx responses)
and observed the ATO – failed attempts throttle on /contact rule activating and
throttling further attempts.
LOGIN_LOG, respected the 5-minute per-IP throttle,
and produced Discord alerts containing Bot Management and per-IP history fields.
Evidence:
Configuration and proof for all ATO controls on /contact plus runtime evidence:
ATO – leaked credentials on /contact using
cf.waf.credential_check.username_and_password_leaked.
ATO detection IDs + leaked credential signal using detection ID
201326593 and cf.waf.credential_check.username_password_similar.
ATO – failed attempts throttle on /contact using
http.response.code in the counting expression for failed attempts.
log-leaked-creds-and-bot-info (throttled) configuration, showing KV
bindings (LOGIN_LOG) and DISCORD_WEBHOOK_URL secret.
/contact.
Figure 9a: WAF leaked-credentials rule for /contact.
Figure 9b: Advanced ATO rule using detection IDs and credential similarity.
Figure 9c: Rate Limiting – failed attempts throttle on /contact.
Figure 9d: Runtime evidence of ATO rules on /contact.
Figure 9e: Worker configuration for leaked-credential logging and Discord alerts.
Figure 9f: Discord alert generated by the ATO Worker.
TL;DR: Required every API request to include X-Security-Token, blocking calls that
omit it before they reach the origin.
Cloudflare features used: WAF / Rulesets, header presence checks, Security Events.
Configuration delivered:
To ensure that all traffic to the API hostname includes the custom header
X-Security-Token, we:
api.innovative-trailblazer.sxplab.com.
(http.host eq "api.innovative-trailblazer.sxplab.com"
and not len(http.request.headers["x-security-token"]) > 0)
X-Security-Token header is
missing or empty, and the rule action is set to Block.
X-Security-Token, so the
origin can enforce the token semantics while Cloudflare enforces structural presence at the edge.
Outcome & rationale:
All calls to api.innovative-trailblazer.sxplab.com must carry the required security header,
providing a simple but effective way to prevent unauthenticated or misconfigured clients from reaching the
API origin.
Validation performed:
Sent test requests to the API host both with and without the X-Security-Token header:
X-Security-Token (or with an empty value) matched the rule expression
and were blocked at Cloudflare, with corresponding entries in Security Events.
X-Security-Token were allowed through to the origin,
confirming that enforcement is strictly tied to the header’s presence.
Evidence:
Header-enforcement rule configuration and example blocked/allowed requests based on the presence of
X-Security-Token (see Figure 10a and Figure 10b).
Figure 10a: X-Security-Token header enforcement rule on the API hostname.
Figure 10b: Evidence of blocked vs allowed API requests based on X-Security-Token.
/help
TL;DR: Implemented a Single Redirect that sends requests for /help on the main site to the
dedicated support hostname with a permanent redirect.
Cloudflare features used: Redirect Rules (Single Redirect), HTTP 301 responses.
Configuration delivered:
To ensure that requests to /help are served from the dedicated support hostname, we:
innovative-trailblazer.sxplab.com with the matching expression:
(starts_with(http.request.uri.path, "/help"))
https://support.innovative-trailblazer.sxplab.com/ with HTTP status
301 – Permanent Redirect.
support.innovative-trailblazer.sxplab.com and remains there.
Outcome & rationale:
Users who navigate to /help on the main site are seamlessly redirected to the dedicated
support subdomain, keeping the support experience centralised while preserving a simple, memorable entry
point on the primary site.
Validation performed:
Used curl -I https://innovative-trailblazer.sxplab.com/help and confirmed that the response
returned an HTTP 301 with a Location header pointing to
https://support.innovative-trailblazer.sxplab.com/. Verified that the browser follows the same
redirect path.
Evidence:
Single Redirect rule definition for /help and curl -I output showing the
301 redirect to the support hostname (see Figure 11a and Figure 11b).
Figure 11a: Single Redirect rule for /help → support.innovative-trailblazer.sxplab.com/.
Figure 11b: curl validation of the 301 redirect from /help to the support hostname.
/status
TL;DR: Configured /status to bypass cache and protected it with Cloudflare Access,
so only trusted IPs, service tokens, or authenticated users can see internal health data.
Cloudflare features used: Cache Rules (Bypass cache), Cloudflare Access (ZTNA app), Access policies (Bypass / Service Auth / Allow).
Configuration delivered:
For the /status endpoint specifically, we implemented:
http.request.uri.path eq "/status"
http.request.uri.path eq "/status/" depending on origin behaviour)./status is never cached at Cloudflare edge.
innovative-trailblazer.sxplab.com/status (exact path)/status without a login prompt.
CF-Access-Client-Id: …CF-Access-Client-Secret: …
/status.
Outcome & rationale:
The internal status endpoint is never cached (CF-Cache-Status does not return
HIT) and is only reachable via Cloudflare Access controls. Trusted IPs can see it
transparently, monitoring systems use a service token, and all other users must authenticate with
their identity provider. This gives us a clean “internal URL handling” pattern, scoped strictly
to /status, without exposing health data publicly.
Validation performed:
/status and confirmed that cache headers show bypass (no edge caching).
https://innovative-trailblazer.sxplab.com/status from a non-allowlisted
client with no service token and observed a redirect to the Cloudflare Access login prompt.
curl requests including valid
CF-Access-Client-Id and CF-Access-Client-Secret headers and confirmed that
the request was allowed and the origin’s /status response was returned.
Evidence:
http.request.uri.path eq "/status"
(see Figure 12a).
innovative-trailblazer.sxplab.com,
path /status (see Figure 12b).
/status without being allowlisted or
providing a service token (see Figure 12c).
curl output demonstrating that including valid
CF-Access-Client-Id and CF-Access-Client-Secret headers successfully
returns the /status response (see Figure 12d).
Figure 12a: Cache Rule – Bypass cache for /status.
Figure 12b: Cloudflare Access application and policies for /status.
Figure 12c: Access authentication page when reaching /status without authorization.
Figure 12d: curl validation of /status using an Access service token.
TL;DR: Configured Cloudflare Load Balancing with Proximity steering between Singapore (origin1) and
Frankfurt (origin2), using 10-minute health checks and automatic failover. Implemented a custom load balancer
rule to pin the compliance path /.git to Singapore only.
Cloudflare features used: Load Balancing (pools, monitors, load balancer for
innovative-trailblazer.sxplab.com), Proximity steering, Custom Load Balancing Rules (path-based
override), Failover across pools, and health monitor TLS option
“Don’t verify SSL/TLS certificates (insecure)” to accommodate non-CA-signed origin certificates.
Configuration delivered:
origin1.innovative-trailblazer.sxplab.com (52.191.5.18)origin2.innovative-trailblazer.sxplab.com (52.170.37.97)GET /healthinnovative-trailblazer.sxplab.com:
innovative-trailblazer.sxplab.com/.git to Singapore only/.git requests to Singapore:
http.request.uri.path eq "/.git"/.git are routed to the Singapore data center regardless of
user location.
Outcome & rationale:
/.git to Singapore only via a
load balancer custom rule.
Validation performed:
Evidence:
http.request.uri.path eq "/.git" and overriding traffic
to the Singapore pool (see Figure 13b).
Figure 13a: Regional Load Balancer with Singapore/Frankfurt pools and 10-minute health checks.
Figure 13b: Custom load balancer rule pinning /.git to the Singapore pool.
TL;DR: Requests to /services were being blocked by the Cloudflare OWASP Core Ruleset due to
specific OWASP CRS rule IDs contributing to the anomaly score. Per the lab scenario this traffic was treated as a
false positive (hypothetical legitimate traffic), so we implemented a narrowly scoped OWASP exclusion on
/services that skips only the offending rule IDs while keeping the rest of OWASP CRS protection
enabled. In parallel, we deployed a scheduled “WAF watcher” Worker that monitors the managed ruleset and per-zone
overrides for configuration drift, storing snapshots in KV and alerting via Discord / PagerDuty, and enabled
Cloudflare Advanced Security Notifications to raise additional alerts on spikes in security events.
Cloudflare features used: Cloudflare OWASP Core Ruleset, managed rule exclusions, path-based match conditions, Security Events, Advanced Security Notifications, Cloudflare Rulesets API, Workers, Workers KV, Discord webhooks, PagerDuty Events API.
Configuration delivered:
/services
innovative-trailblazer.sxplab.com/services9c9b50953cb643a2GET /services?q=%27%20UNION%20SELECT%201,2,3%20FROM%20information_schema.tables--
920273, 942100, 942110, 942140, 942190, 942200, 942260,
942270, 942330, 942360, 942361, 942432, 942480
/services
http.request.uri.path eq "/services"
/services:
920273, 942100, 942110, 942140, 942190, 942200, 942260,
942270, 942330, 942360, 942361, 942432, 942480
/services;
only the listed rule IDs are skipped for that specific URI. This preserves strong coverage while removing
the false-positive behaviour for this path.
/services is no longer blocked by OWASP CRS after the targeted exclusion is applied.
CF_API_TOKEN, MANAGED_RULESET_ID, and ZONE_IDS to call the
Rulesets API and fetch the full managed ruleset via
/zones/{zoneId}/rulesets/{managedId} for a reference zone.
RULESET_KV under
managed-ruleset-zones:<MANAGED_RULESET_ID>.
PD_ROUTING_KEY is configured) summarising the number and
type of WAF changes.
DISCORD_WEBHOOK_URL is set) with a diff-style
list of changes (truncated to respect the 2,000-character limit).
ZONE_LABELS_JSON to render human-readable zone labels (for example, “Prod – APAC”) instead
of raw zone IDs in alert text, simplifying operational review.
Outcome & rationale:
The OWASP CRS configuration now allows the lab-classified “legitimate” traffic to /services by
excluding only the exact rule IDs that caused the false positive on that path, while all other OWASP protections
remain in place. At the same time, the managed ruleset and its per-zone overrides are continuously monitored by
the WAF watcher Worker; any change to managed rule versions, actions, or overrides is captured in KV and surfaced
via Discord / PagerDuty. Cloudflare Advanced Security Notifications provide an additional safety net by alerting
on raised security event volumes. This gives AcmeCorp both a stable, tuned WAF posture for
/services and ongoing governance against configuration drift and emerging spikes in security events.
Validation performed:
/services request (Ray ID
9c9b50953cb643a2) was blocked by OWASP CRS with an anomaly score of 61 and the listed rule IDs
before the exclusion was configured.
http.request.uri.path eq "/services" with the
specified rule IDs, re-ran the same pattern and confirmed that it no longer triggered a block while other
attack-style tests still did.
POST /scan) to create an initial baseline in
RULESET_KV, then introduced a small, controlled change to a managed rule override and confirmed
that the next run reported the change and generated a Discord / PagerDuty notification.
Evidence:
/services blocked by the Cloudflare OWASP Core Ruleset before
tuning, including the anomaly score and triggered rule IDs (see Figure 14a).
http.request.uri.path eq "/services" with the specific OWASP CRS rule IDs
920273, 942100, 942110, 942140, 942190, 942200, 942260, 942270, 942330, 942360, 942361, 942432, 942480
excluded for that path (see Figure 14b).
/services request pattern
passing without an OWASP block while other malicious payloads are still mitigated (see Figure 14c).
RULESET_KV
binding and key environment variables such as ZONE_IDS, MANAGED_RULESET_ID,
and ZONE_LABELS_JSON (see Figure 14d).
Figure 14a: Original OWASP CRS block on /services before tuning.
Figure 14b: Path-scoped OWASP rule exclusion for /services.
Figure 14c: /services traffic passing after OWASP tuning.
Figure 14d: WAF watcher Worker and KV configuration.
Figure 14e: Alert generated by the WAF watcher Worker.
TL;DR:
Enabled Page Shield on innovative-trailblazer.sxplab.com and focused monitoring on the
/contact flow (including /contact/received). Deployed a Log-mode Page Shield policy
that treats sxplab.com as trusted and generates policy violations for any scripts from other origins.
Configured Page Shield Notifications to alert the security team on new resources, new domains, and JavaScript
code changes during the monitoring rollout.
Cloudflare features used (implemented): Page Shield (script monitoring & inventory, policy violations, client-side supply chain visibility); Page Shield Notifications (new resources, new domains, code change detection alerts).
Configuration delivered:
/contact and /contact/received
/contact/contact/receivedsxplab.com, alert on everything else (monitoring first)
log (monitoring mode – no blocking during rollout).
(http.host eq "innovative-trailblazer.sxplab.com"
and starts_with(http.request.uri.path, "/contact"))
script-src 'self' https://*.sxplab.com;
sxplab.com (including first-party assets and internal CDNs) are treated as
trusted for the monitored contact flow.
Outcome & rationale:
AcmeCorp gains visibility into all JavaScript loaded during the /contact journey (including
/contact/received) and a clear trust boundary: sxplab.com is allowed, everything else
is highlighted via policy violations. The security team receives actionable alerts when:
Policies remain in Log mode during this lab, avoiding user-facing breakage while proving that enforcement (Allow/Block) would be viable in a later phase.
Validation performed:
/contact and /contact/received and confirmed that Page Shield
Scripts inventory shows resources with Seen on page matching these URLs.
*.sxplab.com appear as policy violations without impacting end users.
Evidence:
/contact and /contact/received.
starts_with(http.request.uri.path, "/contact") and
script-src 'self' https://*.sxplab.com;.
sxplab.com scripts appear as violations.
Figure 15a: Page Shield enabled for the zone.
Figure 15b: Scripts inventory filtered for /contact and /contact/received.
Figure 15c: Log-mode Page Shield policy for the contact flow.
Figure 15d: Policy violations for non-sxplab.com scripts.
Figure 15e: Page Shield notification configuration for the security team.
Advanced improvement (recommended, not implemented in this lab):
page_shield_events to stream Page Shield events to external storage/SIEM
for long-term investigations and compliance reporting.
*.sxplab.com down to specific hostnames or exact script URLs.
TL;DR: Produced a customer handoff pack as custom HTML reports that summarize the current security posture,
performance configuration, and enabled alerting for innovative-trailblazer.sxplab.com, including exportable
tables (CSV/Excel) for investigation and audit workflows.
Cloudflare features used: Security analytics (WAF posture), bot/client IP attributes, Notifications, Health Checks, and Performance Analytics (traffic, cache hit, TTFB).
Configuration delivered:
Outcome & rationale: AcmeCorp receives a practical handoff artifact that documents (1) what controls are enabled, (2) what the platform is observing (top client IPs and bot attributes), (3) what the security team will be alerted on, and (4) baseline performance indicators. This enables faster operations, troubleshooting, and audit readiness without relying on screenshots scattered across multiple dashboard pages.
Validation performed: Verified that the generated reports align with the live dashboard views for the same zone and time range, including: WAF posture shown as enabled/enforcing, notifications listed as enabled, health checks reporting healthy, and the performance analytics summary rendering correctly.
Evidence (selected pages from the HTML handoff report):
Advanced improvement (recommended, not implemented in this lab): For long-term audit retention beyond the dashboard UI, enable Logpush for relevant datasets (for example, security and Page Shield event streams) to an external storage/SIEM destination with appropriate write access.
Advanced handoff (separate audit pack): To avoid overwhelming this submission with raw exports, AcmeCorp will receive a separate full audit pack alongside the main document. This audit pack will include the complete Analytics, Performance, and Security reports as standalone HTML exports (and/or CSV/Excel where applicable), preserving the detailed drill-down views required for operations and audit review while keeping the primary handoff concise and reviewer-friendly.
TL;DR:
This pack includes the SRA document itself, a structured figure set (Figures 1, 2A–16E), and a final checklist
that maps each lab requirement to its implemented configuration and evidence. Together with the HTML handoff
reports from Answer 16, it forms a customer-ready documentation bundle for
innovative-trailblazer.sxplab.com.
Cloudflare features used: N/A – this answer covers documentation, validation, and handoff rather than additional product configuration.
Configuration delivered:
Outcome & rationale:
AcmeCorp receives a clear, self-contained description of what was delivered, how it was validated, and where to look in the Cloudflare dashboard or HTML reports to review or extend the configuration. Each lab requirement is traceable from:
Validation performed:
Final checklist:
| Check | Expected result | Evidence |
|---|---|---|
| DNS & Basic Setup | All lab hostnames resolve to requested IPs via Cloudflare. | Figure 1 (DNS configuration for all lab hostnames). |
| Global performance & delivery | Static assets cached at edge; RUM + Speed Brain enabled; image optimisation via Polish; protocol optimisations (HTTP/2, HTTP/3, TLS 1.3, 0-RTT, Early Hints) and Argo Smart Routing improving latency across SEA/EU/US. | Figures 2A–2C (cache rules, speed & optimisation, Argo Smart Routing). |
| Bandwidth optimisation | Edge cache TTL 10 minutes; browser cache 5 minutes for frequently accessed assets. | Figures 3A–3B (cache rule TTL settings and CF-Cache-Status: HIT validation). |
| HTTPS and TLS | Full (strict) TLS, Google Trust Services CA, PCI-aligned cipher profile, HTTP→HTTPS enforced. | Figures 4A–4F (SSL/TLS overview, HTTPS redirect, edge certs, PCI-aligned cipher settings). |
| Staging restriction | Staging hostname accessible only from SG/DE/US; other countries blocked/challenged. | Figure 5 (geo-restricted access rule and events for staging). |
| WAF & critical endpoints |
OWASP-aligned managed rules enabled globally; stricter managed rules on
/services/safes and /services/business-sales.
|
Figures 6A–6C (global managed rules and critical-path managed rules + events). |
| Bot & ATO controls |
Bot traffic mitigated on /services/checkboxes; ATO activity on
/contact detected, throttled, and logged (rules + Worker alerts).
|
Figures 8A–8B (JS-based bot enforcement on /services/checkboxes) and
Figures 9A–9F (ATO rules, rate limiting, Worker alerts & analytics).
|
| API & behaviour customisation |
API requires X-Security-Token; /help redirects to support;
/status bypasses cache and is protected by Cloudflare Access.
|
Figures 10A–10B (API header enforcement), 11A–11B (support redirect), and
12A–12D (internal /status handling with cache bypass and Access).
|
| Advanced scenarios |
Load Balancing with proximity steering & failover; WAF fine-tuning on
/services; Page Shield monitoring on the contact flow.
|
Figures 13A–13B (regional load balancer), 14A–14E (WAF fine-tuning and managed ruleset watcher), and 15A–15E (Page Shield policy, violations, and notifications). |
| Visibility & reporting | Threat, cache, and performance analytics available; HTML handoff pack generated with exportable tables for operations and audit. | Figures 16A–16E (Top Client IP attributes, Speed & Performance settings, WAF posture, notifications & health checks, and performance analytics summary). |
| Advanced recommendations | Smart Shield with Tiered Cache, Cloudflare Images, R2 offload, and originless Workers hosting identified as production-ready options (design-ready, not enabled in this lab). | SRA narrative – Answer 2 (Advanced recommendations section). |
This report reflects the configuration delivered in the managed lab for
innovative-trailblazer.sxplab.com at the time of execution. Where Enterprise-only features were
not available, equivalent behaviour was implemented using Workers, Rules, or lab-tier alternatives and is
explicitly noted in the relevant answers. Advanced recommendations are design-ready for production but were
left disabled in this environment.