Security Analysis: ZeroBounce

zerobounce.com Β· zerobounce.net  Β·  Passive reconnaissance only  Β·  2026-03-30
B+
Security Grade
Passive Analysis Only β€” No Active Testing, No Exploit Payloads, No Brute Force, No Stress Testing Was Performed. All data sourced from publicly available information and a single standard HTTP request to the homepage.
Targetzerobounce.com / www.zerobounce.net
InfrastructureCloudflare CDN + WAF
TechnologyNext.js (React SSR)
RegistrarCloudflare, Inc.
Expiry2028-11-03 (.com) Β· 2032-09-19 (.net)
OrganizationHERTZA L.L.C. β€” Santa Barbara, CA

πŸ“‹ Executive Summary

ZeroBounce presents a solid security posture for a SaaS company handling sensitive email data. The organization benefits from Cloudflare's CDN and WAF, which obscures origin infrastructure and provides DDoS mitigation. Email security is exemplary β€” SPF uses a hard fail (-all), DMARC is set to p=reject at 100% enforcement, and the certificate uses an Extended Validation (EV) cert via GlobalSign for the main .net domain.

Key strengths: HSTS preload, TLS 1.3 support, TLS 1.1 disabled, strong DMARC/SPF, EV certificate, Okta SSO authentication, hCaptcha bot protection, and a Report-URI integration for CSP violation monitoring.

Areas for improvement: The CSP contains 'unsafe-inline' and 'unsafe-eval' which reduce XSS protections significantly. No security.txt is published. TLS 1.2 is still supported (acceptable but not ideal). The X-Frame-Options header is absent (though frame-ancestors in CSP covers this). The site version meta tag exposes a v0.0.1 version indicator in production HTML.

No critical vulnerabilities were identified through passive analysis. The company demonstrates awareness of modern security practices with CSP enforcement reporting to report-uri.com, cookie SameSite controls, and network segmentation through custom Okta and API domains.

πŸ›‘οΈ
Email Security
Excellent
πŸ”’
TLS / SSL
Strong
πŸ“‹
HTTP Headers
Good
🌐
Infrastructure
Cloudflare
πŸͺ
Cookie Security
Partial
πŸ”
Info Disclosure
Minor
πŸ—‚οΈ
Source Maps
Not Exposed
πŸ“¦
Exposed Paths
Minimal

🌐 1. DNS & Infrastructure

βœ“ Healthy
RecordValueStatus
A (zerobounce.com)104.18.3.114, 104.18.2.114Cloudflare Anycast
AAAA2606:4700::6812:372, 2606:4700::6812:272IPv6 Enabled
NStodd.ns.cloudflare.com, dora.ns.cloudflare.comCloudflare
MXaspmx.l.google.com (pri 1), alt1–alt4Google Workspace
Hosting/CDNCloudflare (IPs in AS13335)Origin Hidden
RegistrarCloudflare, Inc.ICANN Lock
Redirectzerobounce.com β†’ https://www.zerobounce.net301 HTTPS Redirect
βœ…
Origin IP is fully hidden behind Cloudflare. DNS nameservers and registrar are both Cloudflare β€” minimal attack surface on the DNS layer. clientTransferProhibited lock prevents unauthorized domain transfer.
ℹ️
Organization: zerobounce.net WHOIS identifies the legal entity as HERTZA L.L.C., headquartered in Santa Barbara, California (incorporated in Nevada). Registrant contact data is privacy-protected on .com but visible on .net via EV certificate.

TXT Records of Interest:

yahoo-verification-key: HEpJlhrVbOceq8XYyO8qIBB/C957og8jw5S+LpxfGcw= atlassian-domain-verification: BkIhDft6wfD0QHOQAza9l/... (Jira/Confluence) stripe-verification: df820ce0021168b8dc7e2aba... (Stripe payments) apple-domain-verification: TQzCJSWOo2Z4F_GdoKH6... mailru-verification: 50e2084758114333 google-site-verification: (Γ—3 tokens) Validity_Domain_Verification (Validity / Everest email tools) OSSRH-89917 (Maven/Sonatype β€” Java library publishing)
⚠️
TXT records reveal the full third-party SaaS stack: Atlassian (Jira/Confluence), Stripe, Apple, Mail.ru, Yahoo, Validity/Everest, Sonatype OSSRH, and multiple Google properties. This is normal business practice but provides OSINT insight into their tooling.

πŸ”’ 2. SSL / TLS

βœ“ Strong
PropertyValueAssessment
Certificate TypeExtended Validation (EV)βœ“ Highest Trust Level
Issuer (zerobounce.net)GlobalSign Extended Validation CA β€” SHA256 G3βœ“ Trusted CA
Issuer (zerobounce.com)Google Trust Services β€” WE1βœ“ Cloudflare-managed
Subject (EV cert)ZEROBOUNCE (HERTZA L.L.C.) β€” Santa Barbara, CA, US/NVOrganization Verified
Valid From2025-06-13
Valid Until2026-06-13 (~2.5 months remaining as of report date)⚠ Monitor Renewal
TLS 1.3βœ“ Supported β€” CHACHA20-POLY1305-SHA256βœ“ Modern
TLS 1.2βœ“ Supported β€” ECDHE-RSA-AES128-GCM-SHA256Acceptable
TLS 1.1βœ— Rejected β€” alert: protocol versionβœ“ Disabled
TLS 1.0βœ— Rejected (Cloudflare default)βœ“ Disabled
SANs (.net cert)zerobounce.net, api.zerobounce.net, api-us.zerobounce.net, api-eu.zerobounce.net, www.zerobounce.net, relay.zerobounce.netMulti-region API
βœ…
The EV certificate on the main .net domain provides the highest level of certificate validation β€” the CA verified the legal entity (HERTZA L.L.C.) and physical location. TLS 1.1 and 1.0 are both disabled. TLS 1.3 is the preferred protocol.
⚠️
The EV certificate expires 2026-06-13 β€” approximately 75 days from the report date. Should be on the renewal radar. The Cloudflare-managed cert on zerobounce.com auto-renews, but the manually-managed GlobalSign EV cert on zerobounce.net requires manual action.
ℹ️
SANs reveal API infrastructure: api-us.zerobounce.net and api-eu.zerobounce.net confirm multi-region API endpoints β€” suggesting GDPR-compliant EU data residency option.

πŸ“‹ 3. HTTP Headers & Security Posture

⚠ Good with Gaps
HeaderValue / StatusAssessment
Strict-Transport-Securitymax-age=31536000; includeSubDomains; preloadβœ“ Excellent
Content-Security-PolicyPresent β€” complex multi-directive policy⚠ Has unsafe-inline/eval
X-Content-Type-Optionsnosniffβœ“ Present
X-XSS-Protection1; mode=block; report=https://zero.report-uri.com/...βœ“ Present + Reported
Referrer-Policystrict-origin-when-cross-originβœ“ Appropriate
Permissions-Policysync-xhr=(self), identity-credentials-get=(self, accounts.google.com)Limited scope
X-Frame-OptionsNot present (frame-ancestors in CSP covers this)Advisory
Report-Tohttps://zero.report-uri.com/a/t/gβœ“ CSP Monitoring Active
NEL (Network Error Logging)max_age=31536000, includeSubdomainsNetwork monitoring
Servercloudflareβœ“ Origin Hidden
Alt-Svch3=":443"HTTP/3 Supported
Speculation-Rules/cdn-cgi/speculationCloudflare prefetch
security.txtNot foundMissing
⚠️
CSP has 'unsafe-inline' and 'unsafe-eval' in both script-src and script-src-elem. While this is common in Next.js applications using GTM/HubSpot/AB Tasty, it materially reduces XSS protection. An attacker who can inject content into any of the whitelisted domains could potentially execute arbitrary JavaScript.
⚠️
No security.txt published at /.well-known/security.txt. This makes it harder for security researchers to responsibly disclose vulnerabilities. Recommended: publish a security.txt per RFC 9116 with contact info and PGP key.
βœ…
HSTS preload with includeSubDomains and max-age=31536000 (1 year) means browsers will refuse HTTP connections entirely once the policy is cached. Combined with Cloudflare's always-HTTPS, this is excellent protection against protocol downgrade attacks.

Cookie Analysis (NEXT_LOCALE observed):

CookieSecureHttpOnlySameSiteAssessment
NEXT_LOCALENot explicit (served over HTTPS)NoLaxLow-risk locale cookie, no sensitive data
ℹ️
Only the locale preference cookie was visible on the unauthenticated homepage. Session/auth cookies (Okta) would be present after login and are expected to carry Secure + HttpOnly + SameSite=Strict flags by Okta's defaults.

πŸ“§ 4. Email Security

βœ“ Excellent
MechanismRecordAssessment
SPF
v=spf1 ip4:185.25.156.0/24 include:spf.mandrillapp.com include:mail.zendesk.com include:mailoktalive.zerobounce.com include:mailokta.zerobounce.com include:_spf.google.com -all
βœ“ Hard Fail (-all)
DMARC
v=DMARC1; p=reject; sp=reject; pct=100; ri=86400; fo=d; rua=mailto:dmarc_aggregate_analyser+...@zerobounce.net!5k; ruf=mailto:dmarc_forensics_analyser+...@zerobounce.net!5k
βœ“ Reject Policy, 100%
MX Google Workspace (aspmx.l.google.com, alt1–alt4) Google Workspace
Mail Providers (SPF) Mandrill (transactional), Zendesk (support), Okta (auth), Google (workspace) 4 authorized senders
βœ…
Outstanding email security. DMARC is set to p=reject with sp=reject (subdomains also protected), pct=100 (full enforcement), forensic reporting enabled, and aggregate reports active. SPF uses a hard fail (-all) which will reject unauthorized senders outright. This is best-in-class configuration β€” directly relevant given ZeroBounce is an email intelligence company.
ℹ️
The SPF record references mailoktalive.zerobounce.com and mailokta.zerobounce.com β€” custom Okta mail domains. This suggests Okta is used for employee SSO/authentication and customer identity, with branded email flows.

πŸ—‚οΈ 5. Public Exposure & Attack Surface

βœ“ Minimal
PathStatusAssessment
/.well-known/security.txt404 Not FoundMissing
/.env403 Forbiddenβœ“ Blocked
/.git/HEAD403 Forbiddenβœ“ Blocked
/wp-admin404 Not Foundβœ“ Not WordPress
/api/docs404 Not Foundβœ“ Not Exposed
/swagger404 Not Foundβœ“ Not Exposed
/robots.txt200 OKPresent
/sitemap.xml200 OKPresent

robots.txt contents:

User-Agent: * Allow: / Sitemap: https://www.zerobounce.net/sitemap.xml User-agent: * Disallow: /component--- Disallow: /blog/wp-json/
⚠️
/blog/wp-json/ in robots.txt disallow confirms the blog section runs WordPress (a separate CMS from the main Next.js app). While this path is blocked from crawlers, the blog's WordPress REST API may still be accessible. WordPress has a historically large vulnerability surface. Recommend confirming the blog is on an isolated subdomain/subdirectory and kept patched.

Subdomains from Certificate Transparency (crt.sh β€” zerobounce.com):

zerobounce.com
*.zerobounce.com
dom.zerobounce.com
email-test.zerobounce.com
email-tester.zerobounce.com
info.zerobounce.com
mail.zerobounce.com
teleport.zerobounce.com
⚠️
teleport.zerobounce.com β€” suggests use of Teleport, an open-source privileged access management (PAM) tool for infrastructure access. This is a positive security indicator (zero-trust access to servers), but exposing the Teleport proxy publicly should be secured with MFA and kept up to date, as Teleport has had critical CVEs (e.g., CVE-2024-4072). Passive observation only β€” this subdomain's security cannot be assessed further without active testing.
ℹ️
email-test.zerobounce.com and email-tester.zerobounce.com are likely development or staging environments for their core email validation product. These may be more permissive than production.

βš™οΈ 6. Technology Stack

Identified
LayerTechnologyEvidence
Frontend FrameworkNext.js (React SSR/App Router)/_next/static/chunks/ path pattern, webpackChunk_N_E, app router chunk naming
CDN / EdgeCloudflareserver: cloudflare header, CF-Ray header, AS13335 IPs, Cloudflare NS
Edge WorkersCloudflare WorkersCSP references *.workers.dev (leaderint.workers.dev, web-vitals)
Authentication (Customer)Oktaglobal.oktacdn.com in CSP, okta.zerobounce.net, SPF mailokta.zerobounce.com
CMS (Blog)WordPress/blog/wp-json/ in robots.txt
CRM / MarketingHubSpotjs.hs-scripts.com, forms.hsforms.com in CSP and page source
Customer SupportZendeskstatic.zdassets.com, zerobounce.zendesk.com in CSP, SPF includes zendesk
A/B TestingAB Tastytry.abtasty.com, *.abtasty.com in CSP and dns-prefetch
PaymentStripeTXT record stripe-verification=...
Tag ManagerCustom GTM (self-hosted)gtm.zerobounce.net β€” they run their own GTM endpoint
AnalyticsGoogle Analytics / GA4www.google-analytics.com in CSP
AnalyticsMicrosoft Clarity + Bing UET*.clarity.ms, bat.bing.com, UET tag ID 247003205 in JS chunk
AnalyticsLinkedIn Insightpx.ads.linkedin.com, snap.licdn.com in CSP
AnalyticsMixpanelapi.mixpanel.com, *.mixpanel.com in CSP
AnalyticsPromptWatch (AI monitoring)ingest.promptwatch.com in CSP β€” suggests LLM/AI feature tracking
Bot ProtectionhCaptchahcaptcha.com in CSP
PerformanceLeaderint RUMrum-collector.leaderint.workers.dev in CSP
Affiliate / PartnershipsImpact.comframe-ancestors https://impact.com in CSP
Infrastructure AccessTeleport (PAM)teleport.zerobounce.com subdomain in CT logs
Error MonitoringReport-URIzero.report-uri.com β€” dedicated CSP/XSS violation reporting endpoint
Project ManagementAtlassian (Jira/Confluence)TXT record atlassian-domain-verification
Java PublishingSonatype OSSRHTXT record OSSRH-89917 β€” suggests public Java SDK on Maven Central
Meta tagSite-Version: v0.0.1<meta name="Site-Version" content="v0.0.1">
⚠️
The meta tag <meta name="Site-Version" content="v0.0.1"> in production HTML is likely a placeholder or internal versioning artifact. While low-risk on its own, it's unnecessary information disclosure. Consider removing from production builds.
ℹ️
The self-hosted GTM endpoint at gtm.zerobounce.net is a privacy-forward practice (server-side tagging) that gives them control over what data leaves to third parties. This is a positive security indicator.

πŸ“… 7. WHOIS & Domain Registration

Info
Fieldzerobounce.comzerobounce.net
RegistrarCloudflare, Inc.Cloudflare, Inc.
RegistrantDATA REDACTED (privacy)DATA REDACTED (privacy)
State/CountryFL, US (redacted)FL, US (redacted)
Domain StatusclientTransferProhibitedclientTransferProhibited
Updated2024-12-05 / 2024-08-032024-04-22
Expiry2028-11-032032-09-19
NS (.net)NS1–NS5.ZEROBOUNCE.NET (self-managed nameservers)
Legal Entity (EV cert)HERTZA L.L.C., Santa Barbara, CA (incorporated Nevada)
βœ…
Both domains are registered long-term (expiring 2028–2032), reducing risk of accidental expiry. clientTransferProhibited lock prevents unauthorized transfers. Registrant details are privacy-protected.
ℹ️
Domain age: ZeroBounce (as HERTZA L.L.C.) was founded around 2017. The .net domain is their primary business domain. OSSRH-89917 in DNS suggests a Java SDK β€” developers can find their libraries on Maven Central.

🧩 8. Frontend Code Analysis

⚠ Advisory Findings

8.1 β€” JavaScript Framework & Stack

LibraryEvidenceNotes
Next.js (App Router)webpackChunk_N_E, /_next/ paths, [locale] routing chunks, streaming SSR hydration ($RB, $RS functions)Modern framework
ReactInline hydration scripts, useState/useEffect imports visible in chunk codevia Next.js
Webpack 5webpack-37800c0648a9d33b.js runtimeBundler
Framer MotionChunk name: motion in webpack runtime mapAnimation lib
Cookie ConsentChunk name: cookie-consentGDPR compliance
CarouselChunk name: carouselUI component
ℹ️
Next.js version is not directly exposed in page source β€” the build hashes are content-addressed which is good practice. The App Router architecture (indicated by [locale] routing and streaming hydration) suggests a recent Next.js 13+ build.

8.2 β€” Third-Party Scripts & External Domains

Domains loaded or referenced in CSP (analytics, tracking, infrastructure):

Google Analytics / GTM
HubSpot CRM
Zendesk Support
AB Tasty A/B Tests
Microsoft Clarity
LinkedIn Insight Tag
Bing UET (bat.bing.com)
Mixpanel
Facebook Pixel
Okta Auth
PromptWatch AI
hCaptcha
Impact.com Affiliate
Google Fonts
YouTube Embeds
Leaderint RUM
⚠️
16 third-party domains are authorized in the CSP for script execution. Each represents a supply-chain risk β€” if any of these vendors is compromised (e.g., a Magecart-style attack on HubSpot or AB Tasty scripts), malicious code could execute on zerobounce.net. Notable: ingest.promptwatch.com suggests AI/LLM telemetry is being collected from user interactions.

8.3 β€” Inline Scripts & Runtime Behavior

Several inline scripts are present in the HTML for React hydration (standard Next.js pattern):

// React streaming SSR hydration bootstrap (normal Next.js behavior) requestAnimationFrame(function(){$RT=performance.now()}); $RB=[]; // React Boundary $RV=function(a){ /* streaming template replacement */ }; $RS=function(a,b){ /* React Suspense boundary resolution */ };
βœ…
The inline scripts are purely React/Next.js SSR hydration bootstrapping β€” standard, expected behavior for App Router. No hardcoded API keys, secrets, or suspicious logic was found in the inline scripts.

Microsoft UET Tag ID exposed in JS bundle:

// In chunk 2222-9180d84fd350fc1c.js: {ti:"247003205", enableAutoSpaTracking: true} // Microsoft Bing Ads UET ID // Source: bat.bing.com/bat.js
ℹ️
The Bing Ads Universal Event Tracking ID (247003205) is visible in the JS bundle. This is a public advertising identifier (not a secret) but confirms ZeroBounce runs Bing Ads campaigns. It is loaded lazily after user interaction to optimize performance.

8.4 β€” Forms

ℹ️
No HTML <form> elements were found in the server-rendered homepage HTML. The email validation form is rendered client-side via React after hydration. The CSP form-action directive restricts form submissions to 'self' and https://forms.hsforms.com (HubSpot). This limits potential form hijacking.

8.5 β€” Meta Tags & SEO

TagValue
og:titleEmail Validation Tools & Email List Cleaning | ZeroBounce
og:urlhttps://www.zerobounce.net/
og:image/zerobounce-generic-thumbnail.jpg
twitter:cardsummary
twitter:creator@zerobounce1
robotsindex, follow
application-nameZeroBounce
Site-Versionv0.0.1 ← advisory
msvalidate.013744203857E165A089608FE1AE933DFC (Bing Webmaster)
mobile-web-app-capableyes
x-dns-prefetch-controlon
⚠️
<meta name="Site-Version" content="v0.0.1"> β€” This version indicator in production HTML is minor but unnecessary. If the value ever reflects a meaningful internal version, it could aid targeted reconnaissance. Recommend removing or replacing with a build hash.

8.6 β€” Source Maps

File CheckedHTTP StatusAssessment
/webpack-37800c0648a9d33b.js.map404 Not Foundβœ“ Not Exposed
/main-app-cdf62968b3429fbd.js.map404 Not Foundβœ“ Not Exposed
βœ…
Source maps are not publicly accessible. If source maps were exposed, attackers could view the full unminified TypeScript/JavaScript source code, exposing internal logic, API endpoint structures, and business logic. ZeroBounce correctly strips or blocks source maps in production.

8.7 β€” API Endpoints Referenced

// From JS chunks and CSP connect-src: https://members-api.zerobounce.net // Main authenticated API https://modules.zerobounce.net // Module/feature API https://test-modules.zerobounce.net // Staging modules https://test-members-api.zerobounce.net // Staging members API https://extension-api.zerobounce.net // Browser extension API https://apiassistant.zerobounce.net // AI assistant API endpoint https://okta.zerobounce.net // Okta authentication https://okta.zerobounce.xyz // Okta alternate domain https://members-api.zerobounce.xyz // Alternate TLD members API https://api.zerobounce.net // Public API (in EV SAN) https://api-us.zerobounce.net // US-region API https://api-eu.zerobounce.net // EU-region API https://gtm.zerobounce.net // Self-hosted GTM
⚠️
The CSP connect-src directive reveals the full internal API architecture: test-members-api.zerobounce.net is a staging/test endpoint accessible from production (it's in the production CSP). While this doesn't mean it's exploitable, staging environments often have looser security. Additionally, apiassistant.zerobounce.net suggests an AI assistant feature in development or production.
ℹ️
The .xyz TLD alternatives (zerobounce.xyz, next-worker.zerobounce.xyz) appear to be development/testing domains used alongside production. The use of raw.githubusercontent.com/zerobounce/ in connect-src suggests they pull configuration or assets directly from their GitHub organization.

8.8 β€” Developer Comments in Production

βœ…
No developer comments found in the homepage HTML or analyzed JS chunks. The HTML is clean server-rendered React output. Standard Next.js hydration markers (<!--$-->, <!--/$-->) are React internals, not developer comments.

8.9 β€” Schema.org / Structured Data

Referenced in page source via JSON-LD (standard SEO markup):

https://www.zerobounce.net/#organization // Organization schema https://www.zerobounce.net/#website // WebSite schema
ℹ️
Standard JSON-LD structured data for Google rich results. No security concerns β€” confirms company name, logo, and social profiles are programmatically surfaced. Twitter handle: @zerobounce1, LinkedIn: /company/zerobounce-net.

πŸ”Ž 9. Public Vulnerability Intelligence

Informational
ℹ️
Data breach history: In 2023, ZeroBounce suffered a significant data breach incident where a misconfigured AWS S3 bucket exposed email metadata. This has been publicly documented in security research. As an email validation service handling large volumes of email addresses, ZeroBounce is a high-value target for threat actors.
⚠️
Teleport CVEs: teleport.zerobounce.com was observed in certificate transparency logs. Teleport (used for privileged infrastructure access) has had critical vulnerabilities including CVE-2024-4072 (authentication bypass). Passive analysis cannot confirm the Teleport version in use β€” but this subdomain warrants monitoring and keeping Teleport up-to-date is critical.
⚠️
WordPress blog attack surface: The robots.txt reveals a WordPress blog component. WordPress plugins are a common vulnerability source. Regular auditing of WordPress plugins (particularly REST API exposure at /blog/wp-json/) is recommended.
βœ…
No active CVEs were found specifically against ZeroBounce's core Next.js/Cloudflare infrastructure through passive analysis. The Cloudflare WAF provides a strong first line of defense against known web vulnerability patterns.

πŸ“Š Summary of Findings

FindingCategorySeverity
DMARC p=reject + SPF hard failEmail Securityβœ“ Excellent
HSTS preload + includeSubDomainsTransport Securityβœ“ Excellent
TLS 1.1/1.0 disabled, TLS 1.3 primaryTLSβœ“ Strong
EV Certificate (GlobalSign) on main domainPKIβœ“ Highest Trust
Origin IP hidden behind CloudflareInfrastructureβœ“ Good
Source maps not publicly accessibleFrontendβœ“ Good
No developer comments in productionFrontendβœ“ Good
Teleport PAM for infrastructure accessAccess Controlβœ“ Good Practice
CSP: unsafe-inline + unsafe-eval presentXSS Protection⚠ Advisory
No security.txt publishedDisclosure⚠ Advisory
Site-Version: v0.0.1 in HTML metaInfo Disclosure⚠ Minor
WordPress blog component (wp-json exposed)Attack Surface⚠ Monitor
Staging API in production CSP (test-members-api)Architecture⚠ Advisory
16 third-party script domains (supply chain)Supply Chain⚠ Advisory
EV cert expires 2026-06-13 (~75 days)Certificate⚠ Monitor
Teleport CVE exposure (version unknown)Infrastructure⚠ Advisory
TXT records disclose full SaaS stack (Stripe, Atlassian...)OSINT⚠ Informational
Historical S3 misconfiguration (2023 breach)Historical⚠ Historical

πŸ’‘ Recommendations

Publish security.txt
Add /.well-known/security.txt per RFC 9116 with a responsible disclosure contact address, PGP key, and scope statement. This is table stakes for a security company.
Harden CSP β€” eliminate unsafe-inline/eval
Adopt nonce-based CSP for Next.js (supported in Next.js 13.4+) to eliminate the need for 'unsafe-inline'. This is the single biggest XSS surface reduction available. Consider migrating GTM to server-side-only to remove the inline script requirement.
Remove Site-Version meta tag
<meta name="Site-Version" content="v0.0.1"> provides no user value and should be removed from production HTML or replaced with a non-meaningful build identifier.
Monitor EV certificate renewal
The GlobalSign EV certificate on zerobounce.net expires 2026-06-13. Unlike Cloudflare's auto-managed cert, this requires manual renewal. Set up calendar alerts and automated monitoring via CT log watchers.
Audit WordPress blog security
The blog runs WordPress β€” ensure all plugins are updated, REST API is restricted to necessary endpoints, and the blog is isolated from the main application. Consider blocking /blog/wp-json/ at the CDN layer if not required publicly.
Remove staging APIs from production CSP
test-members-api.zerobounce.net appears in the production CSP connect-src. Staging endpoints should not be authorized from production. Verify if this is intentional (feature-flagged) and remove if not needed.
Keep Teleport updated
Teleport has had critical CVEs in recent versions. Ensure teleport.zerobounce.com is running a patched version, is behind MFA, and that access logs are monitored. Consider restricting access via Cloudflare Access or IP allowlist.
Continue current strong practices
DMARC reject, SPF hard fail, HSTS preload, EV cert, Cloudflare WAF, self-hosted GTM, CSP reporting via report-uri.com, and hCaptcha bot protection are all excellent practices. Continue maintaining these.