Nova Shield: Frontend Protection Setup
Nova Shield is the frontend security layer for Nova Scan. It runs as a tiny JavaScript agent on your site, watching for DOM tampering, malicious script injection, and unauthorized form hijacking in real time.
What Nova Shield Protects Against
- πͺ DOM injection: malicious scripts added after page load
- π Form hijacking: credit card / login form skimmers
- π Link tampering: redirect chain swaps
- 𧬠Script integrity drift: modifications to your JS files
- π Iframe injection: hidden ad/tracking frames
- π°οΈ Suspicious outbound calls: data exfiltration attempts
Quick Setup (3 steps)
1. Enable Shield
Nova Core β Nova Scan β Shield β Enable Frontend Protection
2. Pick a Mode
- Learning Mode (recommended for first 7 days): Shield watches and logs everything but blocks nothing. Use this to baseline your site.
- Active Mode: Shield blocks anything that doesn’t match the learned baseline.
3. Verify the Agent Loaded
Open your homepage in an incognito window, open DevTools β Console, and look for:
[Nova Shield] Active - monitoring 9 surfaces
If you see that, you’re done. If not, see Troubleshooting below.
Configuration Options
| Setting | Default | What it does |
|---|---|---|
| Mode | Learning | Learning vs Active |
| Protected Pages | All | Restrict to checkout/login only if needed |
| Form Protection | On | Watches all <form> elements for tampering |
| Link Integrity | On | Hashes outbound links and re-checks on click |
| Script Hashing | On | Locks first-party JS to known-good hashes |
| Report Only | Off | Sends alerts but never blocks (even in Active mode) |
| Whitelist Domains | empty | Domains Shield should ignore (e.g. googletagmanager.com) |
Troubleshooting
β Shield agent not loading
Check:
- Is Nova Scan active? Shield requires Nova Scan + Nova Core both running.
- Is your site behind a caching layer? Purge all 3 caches: Cloudflare, Hyper Nova, OPcache.
- Open
view-source:on your homepage and search fornova-shield. If missing, the agent script wasn’t injected, check that Shield is enabled under Nova Scan settings.
β CORS errors in browser console
Shield reports back to your own site’s REST endpoint, so CORS is rare, but it can happen if your site has aggressive CORS headers or runs the frontend on a different domain than the WordPress backend (headless WP setups).
Fix:
- Go to Nova Core β Settings β Auth & CORS
- Add your frontend domain (e.g.
https://example.com) to Allowed Origins - Save and purge caches
If you see this in console:
Access to fetch at 'https://yoursite.com/wp-json/nova/v1/shield/report'
from origin 'https://yoursite.com' has been blocked by CORS policy
β¦it usually means a security plugin (Wordfence, iThemes, etc.) is stripping the Access-Control-Allow-Origin header. Whitelist the /wp-json/nova/v1/shield/* route in that plugin.
β Cloudflare blocking Shield reports
Cloudflare’s bot management or WAF can flag Shield’s POST reports as bot traffic. Symptoms:
- Console shows
403or1010errors when Shield tries to report - Shield Activity dashboard stays empty even though the agent is loaded
Fix:
- Cloudflare Dashboard β Security β WAF β Custom Rules
- Create a rule:
(http.request.uri.path contains "/wp-json/nova/v1/shield")Action: Skip β All remaining custom rules + Bot Fight Mode - Also exclude the path from Cloudflare β Caching β Cache Rules so reports aren’t cached.
- If you use Cloudflare Bot Fight Mode, add
/wp-json/nova/v1/shield/*to the bot exclusions. - Purge Cloudflare cache.
β Too many false positives in Active Mode
You activated too early. Switch back to Learning Mode for another 7 days, then re-enable Active Mode. Shield needs to see all your site’s normal patterns (Google Analytics, Tag Manager, third-party widgets, etc.) before it can tell what’s anomalous.
β Tag Manager / Analytics getting blocked
Add the third-party domain to Whitelist Domains:
googletagmanager.comgoogle-analytics.comconnect.facebook.netcdn.cookielaw.org(OneTrust)- Any other trusted analytics/marketing tools
β Forms breaking on checkout pages
WooCommerce / EDD checkout forms use dynamic field generation that can trip Shield. Fix:
- Nova Scan β Shield β Protected Pages
- Exclude
/checkout/and/cart/if you’re on Active Mode and seeing breakage - Or switch those pages to Report Only mode
β Shield Activity dashboard empty
Check in this order:
- Is the agent loaded? (
view-source:your homepage, search fornova-shield) - Are reports reaching the server? (DevTools β Network β filter for
shield/report) - Is Cloudflare/WAF blocking the reports? (see Cloudflare section above)
- Purge OPcache: sometimes the report endpoint is stale
Best Practices
- Always start in Learning Mode for 7 days minimum. Skipping this guarantees false positives.
- Whitelist your analytics/marketing stack before going Active.
- Run Nova Scan + Shield together – Scan catches what’s already there, Shield catches what tries to get in.
- Check Shield Activity weekly during the first month to tune your whitelist.
- Use Report Only mode on critical pages (checkout, login) for the first 2 weeks of Active Mode – you get alerts without breaking customers.
Common Question
Q: Does Shield slow down my site? A: The agent is ~9KB gzipped and runs after page load. Real-world impact is under 5ms on first paint.
Q: Does Shield work with HyperNova caching? A: Yes. Shield’s agent is injected at render time and the report endpoint bypasses cache automatically.
Q: Will Shield see my visitors’ personal data? A: No. Shield only hashes structural patterns (DOM shape, script hashes, form field counts). It never reads field values or sends content off-site.
Q: Can I run Shield without Nova Scan? A: No. Shield is a feature of Nova Scan and requires it active.