Back to Checks
Cloudflare Zone Browser Integrity Check Is Enabled
zone_browser_integrity_check_enabled
Service: zoneSeverity: low
OfficialBuilt-inVerified
Categories:internet-exposed
Resource Type:Zone
Cloudflare zones are assessed for Browser Integrity Check configuration by verifying that HTTP headers are analyzed to identify requests from bots or clients with missing/invalid browser signatures.
Risk
Without Browser Integrity Check, malformed or suspicious requests reach the origin.
- Confidentiality: basic bots can access and scrape content without challenge
- Integrity: requests with invalid headers may exploit application vulnerabilities
- Availability: automated traffic without browser signatures consumes resources
Run this check with Prowler
Run in Prowler CloudRun
prowler cloudflare --checks zone_browser_integrity_check_enabledRecommendation
Enable Browser Integrity Check to filter basic bot traffic.
- Validates HTTP headers to identify non-browser requests
- Challenges requests with missing or invalid browser signatures
- Enabled by default on most Cloudflare plans
- Low impact on legitimate users with standard browsers
Remediation
Terraform
# Enable Browser Integrity Check
resource "cloudflare_zone_settings_override" "browser_check" {
zone_id = "<ZONE_ID>"
settings {
browser_check = "on"
}
}Other
1Log in to the Cloudflare dashboard and select your account and domain
2Go to Security > Settings
3Enable Browser Integrity Check
4This feature is enabled by default on most Cloudflare plans
Check Code
from prowler.lib.check.models import Check, CheckReportCloudflare
from prowler.providers.cloudflare.services.zone.zone_client import zone_client
class zone_browser_integrity_check_enabled(Check):
"""Ensure that Browser Integrity Check is enabled for Cloudflare zones.
Browser Integrity Check analyzes HTTP headers to identify requests from
bots or clients with missing/invalid browser signatures. It challenges
suspicious requests that don't have valid browser characteristics,
protecting against basic automated attacks and malformed requests.
"""
def execute(self) -> list[CheckReportCloudflare]:
"""Execute the Browser Integrity Check enabled check.
Iterates through all Cloudflare zones and verifies that Browser
Integrity Check is enabled. This feature validates browser headers
to filter out basic bot traffic.
Returns:
A list of CheckReportCloudflare objects with PASS status if Browser
Integrity Check is enabled, or FAIL status if it is disabled.
"""
findings = []
for zone in zone_client.zones.values():
report = CheckReportCloudflare(
metadata=self.metadata(),
resource=zone,
)
browser_check = (zone.settings.browser_check or "").lower()
if browser_check == "on":
report.status = "PASS"
report.status_extended = (
f"Browser Integrity Check is enabled for zone {zone.name}."
)
else:
report.status = "FAIL"
report.status_extended = (
f"Browser Integrity Check is not enabled for zone {zone.name}."
)
findings.append(report)
return findings