Security website checks
Website security checks examine transport protection, response headers, cookie attributes and publicly exposed resources. A missing header is evidence of a missing browser defence, not proof of an exploitable vulnerability. A passing public scan cannot establish how passwords are stored, whether permissions are enforced or whether private records are isolated.
Roll out restrictive policies in stages. Test Content Security Policy in report-only mode before enforcement, check embedded content before changing framing rules and confirm HTTPS coverage before extending HSTS. Inspect redirects and error responses as well as the homepage. Record the policy, tested journeys and reasons for accepted exceptions.
The check pages below describe the exact observable condition, why it matters, practical fixes and the limits of the detector. Open the affected URL and inspect its evidence before making a change. After correction, repeat the scan and verify the result in a browser. The related guide connects these individual checks into a review workflow. Keep deliberate exceptions documented so that a passing automated result is never mistaken for a complete manual assessment.
Checks and fixes
CORS wide open: Access-Control-Allow-Origin is a wildcard
Understand Access-Control-Allow-Origin wildcard findings. Fix credentialed CORS, build an origin allowlist, test preflight, and avoid unsafe origin reflection.
Admin Login Page Publicly Accessible: Review the Exposure
Review an admin login page linked from public content. Remove unnecessary links, enforce access controls, test public dependencies, and understand scan limits.
Autocomplete Off on a Password Field: Use Helpful Hints
Fix autocomplete off on a password field. Use current-password or new-password, test password managers, and keep deliberate non-login exceptions documented.
Content-Security-Policy Header Missing: How to Fix It
Fix a missing Content-Security-Policy header with a tested rollout, nonce-based script protection, verification steps, and clear scanner limitations.
CSP Report-Only Not Enforced: Finish the Policy Rollout
Move CSP from report-only to enforcement safely. Review violations, test critical journeys, configure reporting, and understand what the check verifies.
Cookie Expiration Too Long: Set Purpose-Based Lifetimes
Review cookie expiration that is too long. Set purpose-based Max-Age values, enforce session limits, test renewal, and recognise scanner blind spots.
Cookie Without the HttpOnly Flag: How to Fix It
Fix a missing HttpOnly flag on session cookies without breaking frontend code. See header examples, verification steps, exceptions, and scanner limits.
Cookie Without a SameSite Attribute: How to Fix It
Fix cookies missing SameSite. Compare Lax, Strict, and None, test login and payment callbacks, and understand what the WebAuditOS check actually verifies.
Cookie Without the Secure Flag: How to Fix It
Fix a cookie without the Secure flag. See a safe Set-Cookie example, HTTPS and proxy checks, testing steps, and common session-cookie pitfalls.
Cross-Origin-Opener-Policy Header Missing: Choose COOP
Fix a missing Cross-Origin-Opener-Policy header. Choose COOP for your window relationships, test OAuth and payment popups, and verify actual browser behaviour.
Cross-Origin-Resource-Policy Header Missing: Set CORP
Review a missing Cross-Origin-Resource-Policy header. Choose CORP values for each resource, preserve public assets, and distinguish it from access control.
CSP Base-URI Missing: Restrict the Document Base URL
Fix CSP base-uri missing. Choose self or none, inspect base elements, preserve required paths, and verify enforcement without relying on default-src.
CSP Default-Src Missing: Add a Safe Resource Fallback
Fix a missing CSP default-src directive. Understand fetch fallbacks, choose self or none, test blocked resources, and keep non-inheriting directives explicit.
CSP object-src missing: plugin content not blocked
Fix CSP object-src missing with an effective none policy. Check default-src fallback, test embedded PDFs, and verify object and embed restrictions.
CSP Unsafe-Eval: Remove Dynamic Evaluation Safely
Remove unsafe-eval from CSP without breaking production. Find eval dependencies, test a report-only policy, and verify which enforced directive applies.
Directory Listing Enabled: Disable Public File Indexes
Fix directory listing enabled in nginx, Apache, or IIS. Disable public indexes, remove exposed backups, and verify files are protected at their direct URLs.
Session Cookie Without the __Host- Prefix: Review Scope
Use the __Host- cookie prefix for host-bound sessions. Check Secure, Path and Domain rules, plan migration, and preserve intentional cross-subdomain sign-in.
HSTS Preload Not Ready: Decide Whether to Preload
Understand HSTS preload readiness. Check base-domain headers, HTTPS across subdomains, submission requirements, and the risks of slow preload removal.
HTTP Not Redirecting to HTTPS: Configure a Safe Redirect
Fix HTTP not redirecting to HTTPS with a permanent redirect. Preserve paths, test proxy settings and certificate renewal, and avoid unnecessary redirect chains.
Meta Generator Tag Version Disclosure: Remove Extra Detail
Remove unnecessary CMS version disclosure from meta generator tags. Review WordPress and static templates, preserve cache busting, and verify real patch status.
Missing Intermediate Certificate: Repair the TLS Chain
Fix a missing intermediate certificate by serving the full TLS chain. Check the nginx chain file, validate hostname and trust, and test renewal automation.
Mixed Content on an HTTPS Page: Find and Fix HTTP Resources
Fix mixed content on an HTTPS page. Find insecure resource URLs, update their source, test browser blocking and upgrades, and verify runtime requests.
No Security Page or Trust Center: Publish Useful Evidence
Create a useful security page or trust center. Explain verified practices, link disclosure contacts, avoid unsupported claims, and understand scanner limits.
Password Field on an HTTP Page: Secure the Full Login Flow
Fix a password field on HTTP or an HTTPS form posting to HTTP. Secure the page and submission, test login flows, and review possible credential exposure.
Permissions-Policy Header Missing: Restrict Unused Features
Fix a missing Permissions-Policy header. Disable unused browser features, preserve needed embeds, test supported browsers, and understand presence-only checks.
Referrer-Policy Header Missing: Choose and Verify a Policy
Fix a missing Referrer-Policy header. Understand modern browser defaults, choose strict-origin-when-cross-origin or a tighter policy, and verify what is sent.
Security.txt Missing: Publish a Maintained Disclosure Contact
Fix security.txt missing at the well-known path. Add Contact and Expires, serve text over HTTPS, and maintain a monitored vulnerability reporting channel.
Server Header Version Disclosure: Hide Unnecessary Numbers
Reduce Server header version disclosure. Configure the serving layer, verify public responses, and understand why hidden versions do not prove security.
Site Not Served Over HTTPS: Secure Your Website
Fix a site not served over HTTPS. Configure TLS, update links and canonicals, test forms and cookies, and verify the migration without promising ranking gains.
Stack Trace Exposed on an Error Page: Stop Debug Disclosure
Fix a stack trace exposed on an error page. Disable public debug output, keep protected logs, preserve error status codes, and test HTML and API responses.
Strict-Transport-Security Header Missing: Enable HSTS Safely
Fix a missing Strict-Transport-Security header. Roll out HSTS safely, verify max-age, and understand subdomain coverage, preload, and rollback limitations.
Subresource Integrity Missing: Pin Trusted Script Files
Fix missing Subresource Integrity on external scripts. Pin exact bytes, configure CORS, test updates, and distinguish browser checks from scanner heuristics.
target="_blank" links without rel="noopener"
Review target=_blank links without rel=noopener. Add explicit opener protection, preserve needed referral data, and test legitimate popup communication.
Outdated TLS protocol version: 1.0 and 1.1 still enabled
Check whether TLS 1.0 and 1.1 remain enabled. Test each version explicitly, update the real TLS endpoint, and verify legacy clients and scanner limitations.
TLS Certificate Expiring Soon: Renew and Verify Deployment
Fix a TLS certificate expiring soon. Check the served certificate, repair renewal and deployment, verify every hostname, and add independent expiry monitoring.
Too Many Third-Party Scripts: Audit and Reduce Exposure
Audit too many third-party scripts. Find runtime vendors, remove unused tags, review ownership and consent, and test security and performance tradeoffs.
Weak Cipher Suite Negotiated: Review and Harden TLS
Fix a weak cipher suite finding. Review negotiated and supported suites, prefer modern AEAD configurations, test old clients, and understand scan limits.
Password change URL missing (/.well-known/change-password)
Add a missing .well-known/change-password URL. Redirect to the real password settings page, preserve login return flow, and test soft-404 and scanner limits.
X-Content-Type-Options Header Missing: Add Nosniff Safely
Fix a missing X-Content-Type-Options header. Add nosniff, correct script and stylesheet MIME types, verify downloads, and test error and asset responses.
X-Frame-Options Header Missing: Prevent Unwanted Framing
Fix a missing X-Frame-Options header or configure CSP frame-ancestors. Choose a policy, preserve legitimate embeds, and verify browser enforcement.
X-Powered-By Header: Remove Unnecessary Stack Disclosure
Remove the X-Powered-By header in Express, PHP, or your proxy. Check related disclosure headers, verify all response paths, and understand the limited benefit.