Chat on WhatsApp
Free tool · 2026 edition

Free Magento security score checker

Audit 25 critical Magento security controls in 5 minutes and get a weighted 0–100 score, letter grade, per-category breakdown, and a prioritized fix list. PCI DSS v4 + Adobe Security Center aligned. Built by an Adobe-Certified Magento developer.

  • 25 weighted checks across authentication, network, data, patching, monitoring
  • Real server-side scoring — letter grade A/B/C/D/F + 5 sub-scores
  • Prioritized fix list with effort estimates and doc links
Adobe-Certified Magento + Hyvä developer PCI DSS v4 + Adobe Security Center aligned
The audit

Answer 25 questions, get a real security score

Yes / No / Skip per question. Answers are weighted by severity (critical / high / medium) and graded by category. Answer at least 20 of 25 to compute a score — skipping a few is fine when you genuinely don’t know.

of 25 questions answered (%)

Category 1 of 5

Authentication

Admin access controls — the front door.

  • Q1 Critical

    Is two-factor authentication (2FA) enforced for every admin user?

    Magento has had built-in 2FA since 2.4.0. Enforce it for all admins — not just optional.

  • Q2 High

    Do admin passwords meet a strong policy (12+ chars, mixed case, numbers, symbols)?

    Configured under Stores → Configuration → Customers → Customer Configuration → Password Options.

  • Q3 High

    Is admin access restricted to an IP allowlist at the WAF or nginx level?

    Blocks 99% of brute-force traffic before it reaches PHP.

  • Q4 Medium

    Has the default /admin URL been renamed to a non-guessable path?

    Stores → Configuration → Advanced → Admin → Admin Base URL → Use Custom Admin Path.

  • Q5 Medium

    Is an admin lockout policy active (3-6 failed attempts triggers a temporary lock)?

    Default Magento lock is 6 failed attempts in 6 minutes; tune to your risk tolerance.

Category 2 of 5

Network

TLS, WAF, headers, CSP.

  • Q6 Critical

    Is TLS 1.2 or higher enforced (and TLS 1.0/1.1 disabled at the load balancer)?

    PCI DSS 4 mandates TLS 1.2+. Test with SSL Labs.

  • Q7 High

    Is HSTS (HTTP Strict Transport Security) header sent with a 1-year max-age?

    Prevents protocol-downgrade attacks. Submit to hstspreload.org for browser preload.

  • Q8 Critical

    Is a Web Application Firewall (Cloudflare WAF / AWS WAF / Sucuri) active on all traffic?

    Filters OWASP Top 10 + known Magento exploit signatures before they hit PHP-FPM.

  • Q9 High

    Are security headers (X-Frame-Options, X-Content-Type-Options, Referrer-Policy) present?

    Test with securityheaders.com — aim for grade A or higher.

  • Q10 Medium

    Is a Content Security Policy (CSP) deployed in enforcing mode (not report-only)?

    Magento 2.4.8+ ships Magento_Csp module with per-page policies. Move from report-only to enforce after tuning.

Category 3 of 5

Data

Backups, PCI scope, tokenization, GDPR.

  • Q11 Critical

    Are database + media backups encrypted at rest and stored off-site?

    AES-256 at minimum. Test the restore path quarterly — untested backups are not backups.

  • Q12 Critical

    Is your PCI scope confirmed as SAQ A or SAQ A-EP (not SAQ D)?

    SAQ D means you store full PAN — much higher compliance burden. Move to hosted/tokenized checkout.

  • Q13 Critical

    Are all payment cards tokenized in Vault (no raw PAN ever touches your DB)?

    Stripe Vault / Braintree Vault / Adyen Saved Payment — never sales_order_payment.cc_number.

  • Q14 High

    Is a GDPR-compliant customer data export + delete endpoint live?

    Magento 2.4 ships Magento_CustomerDownloadableLink. EU/UK customers can demand within 30 days.

  • Q15 Medium

    Is automatic data retention / purge running for old orders and customer logs?

    Reduces breach blast radius. Configure under Stores → Configuration → Customers → GDPR.

Category 4 of 5

Patching

Magento, PHP, OS — cadence over heroics.

  • Q16 Critical

    Are you running the latest 2.4.x with all current security patches applied?

    Adobe ships security patches monthly. Falling 2+ versions behind is the single biggest breach risk.

  • Q17 High

    Do you apply Adobe Security Center patches within 30 days of release?

    Adobe publishes CVEs at helpx.adobe.com/security/products/magento. Subscribe to the RSS feed.

  • Q18 High

    Are third-party extensions updated on a monthly cadence (not "set and forget")?

    A silent vendor is a security risk. Audit composer.lock against Marketplace updates quarterly.

  • Q19 Critical

    Is your PHP version still receiving security updates (8.2 / 8.3 / 8.4)?

    PHP 8.1 EOL was Dec 2024. 8.2 EOL is Dec 2026. Plan PHP upgrades alongside Magento upgrades.

  • Q20 High

    Do you apply OS / kernel security patches at least monthly?

    Ubuntu unattended-upgrades or RHEL Live Patch. Reboot windows scheduled and announced.

Category 5 of 5

Monitoring

FIM, logs, IR plan, simulations.

  • Q21 High

    Is File Integrity Monitoring (FIM) running on app/, vendor/, pub/?

    AIDE, Tripwire, or Wazuh. Alerts on unexpected file changes — early detection of webshells.

  • Q22 Medium

    Have you published /.well-known/security.txt with a contact + disclosure policy?

    RFC 9116. Tells researchers where to report findings before they go public.

  • Q23 High

    Are application + web-server + WAF logs aggregated to a SIEM (or at least a central store)?

    CloudWatch / Datadog / Splunk / ELK / Loki. Forensics impossible without aggregated logs.

  • Q24 Critical

    Is there a written Incident Response (IR) plan that names roles + escalation paths?

    Who calls who at 3am? Written runbook with PagerDuty / on-call rota.

  • Q25 Medium

    Has a breach simulation (tabletop or red-team) been run in the last 12 months?

    Plans untested are plans unowned. Even a 1-hour tabletop exercise surfaces 10+ gaps.

Answer at least 20 of 25 to compute a score — .

Looks good. Hit the button to score.

Your result

Your Magento security score

/ 100

By category

Your prioritized fix list

Sorted by severity descending. The first 3 are your highest-ROI investments for the next 30 days.

Book a deep audit
Why trust this audit

Four reasons the score is honest

Severity-weighted, server-side scored, anonymous, and built around PCI DSS v4 + Adobe Security Center controls — not a generic checklist.

  • 25 weighted checks PCI + Adobe + OWASP aligned

    Each of the 25 questions is weighted by severity (critical / high / medium) and maps to a specific control from PCI DSS v4, Adobe Security Center, or the OWASP Top 10. No filler — every check moves the needle on real attack surface.

  • Zero data stored Your answers stay in your browser

    No URL, no email, no cookies, no analytics on the audit form itself. Answers are POSTed once to score them and never persisted. The fix list comes back, you save it locally if you want it.

  • Per-category score See where you’re weak

    You don’t just get one number — you get five sub-scores (auth, network, data, patching, monitoring) so you know exactly which area to fix first. Most breaches come from one weak category dragging the whole score.

  • Prioritized fixes Effort + severity, sorted

    Each "No" answer becomes a fix-list card with a recommendation, an effort estimate ("~2 hours" / "1 sprint"), and a doc link where one exists. Sorted by severity desc so you fix the biggest holes first.

What the audit checks

Six security pillars — the load-bearing ones

Each pillar maps to a category in the audit, plus incident-response which the monitoring sub-score gates. No filler, no theatre — the controls that actually move risk.

  • Authentication

    Five checks: admin 2FA enforcement, password-policy strength, IP allowlist on /admin, custom admin path, and lockout policy. Authentication is where 60% of opportunistic Magento breaches start — brute-force or credential-stuffing on the default /admin URL with weak passwords and no MFA. Lock this down first.

  • Network

    TLS 1.2+ enforcement, HSTS with preload-ready max-age, an active WAF (Cloudflare / AWS / Sucuri), security headers (X-Frame-Options, X-Content-Type-Options, Referrer-Policy), and a Content Security Policy in enforcing mode. The audit checks both the headers your server returns and the protocol versions it accepts.

  • Data

    Encrypted off-site backups, PCI scope (SAQ A vs A-EP vs D), payment tokenization in Vault (no raw PAN in sales_order_payment), GDPR data export/delete endpoint, and automatic retention purge for old orders. This category usually scores lowest because tokenization gaps are invisible until an audit looks.

  • Patching

    Latest 2.4.x patch level, ≤30-day cadence on Adobe Security Center patches, monthly third-party extension reviews, a supported PHP version (8.2/8.3/8.4 with active security updates), and monthly OS/kernel patches. Falling 2+ versions behind on Magento doubles your breach probability vs. peers.

  • Monitoring

    File Integrity Monitoring on app/vendor/pub, a published /.well-known/security.txt, log aggregation to a SIEM, a written Incident Response plan, and a tabletop simulation within the last 12 months. Monitoring catches the breach you didn’t prevent — the difference between “contained in 4 hours” and “disclosed in 9 months.”

  • Incident response

    A written IR plan covering: who calls who (PagerDuty / on-call rota), forensics preservation steps (don’t reboot the box), customer + regulator notification thresholds (72h GDPR clock), legal counsel pre-engaged. The audit’s monitoring sub-score gates this — you can’t respond to what you can’t see.

How to use the score

Five steps from audit to remediation

Take audit → review score → pick top 3 fixes → apply patches → re-audit quarterly. Quarterly cadence is what turns a one-off score into a security posture.

  1. 01

    Take the audit

    Answer 25 weighted yes/no/skip questions in about 5 minutes. The form runs in your browser; only the final answer set is POSTed to score. Honest answers beat impressive answers — the fix list is only useful if the score reflects reality.

    25 answers
  2. 02

    Review your score

    Read your overall 0-100 score, letter grade, and the five per-category bar charts. A 78 with three weak categories beats an 82 with one critical gap — the per-category view tells you which is which.

    Score + grade
  3. 03

    Pick top 3 fixes

    The fix list is sorted by severity desc. The top three "No" or "Skip" answers in critical-severity questions are almost always your highest-ROI security investment for the next 30 days. Don’t try to fix everything at once.

    Action shortlist
  4. 04

    Apply patches

    Each fix-list card has an effort estimate and a doc link where one exists. Most "critical" fixes are 2-8 hours of dev work (enable 2FA, rotate to TLS 1.2+, tokenize payments). The expensive ones (FIM, SIEM, IR plan) are sprint-sized but pay back over years.

    Score climbs
  5. 05

    Re-audit quarterly

    Re-run this audit every 90 days. New CVEs, new extensions, new staff, new compliance asks — your score drifts. Quarterly re-audits also create an audit trail that PCI assessors and insurers love. Same URL, same 25 questions.

    Compliance trail
Three honest use cases

Pre-PCI audit, post-incident, quarterly

Skim, find the one that fits, run the audit with that purpose. The score reads differently depending on what you’re trying to prove.

  • Pre-PCI-DSS audit

    Before your next QSA visit…

    • Run the audit 2–4 weeks before your QSA arrives
    • Map every “No” to a PCI DSS v4 control owner
    • Use the per-category scores to brief the QSA on known gaps
    • A 70+ overall score correlates with a clean SAQ A in my data
    • Bring the fix list to the audit kickoff — sets the right tone
    • Re-audit 30 days after remediation to prove uplift
  • Quarterly review

    Every 90 days, religiously…

    • Calendar invite at +90 / +180 / +270 / +360 days
    • Same auditor (you or one named team member) every time
    • Score-drift > 5 points triggers an emergency review
    • New extensions added since last audit get fresh scrutiny
    • Tabletop exercise (q25) is the most-skipped — book it now
    • Annual: take the fix list to your board security review
Book a deep audit

Want the score validated by hand? Book a 5-day deep audit

Self-audit scores tell you where you think you are. A deep audit confirms it by reading the actual config, running active scans, and producing a remediation roadmap with locked-price fix proposals. Ten fields — just enough to scope it.

We will get back to you shortly.

Past audit clients say

Reviews from stores I’ve secured

Public reviews on Upwork. Same playbook on every audit: 25 weighted checks + targeted remediation + 90-day re-audit to prove uplift.

I hired Kishan for a small project.

I hired Kishan for a small project. He did it very well and fast. So, I hired him to do more things and he did it on time! Kishan is really an excellent developer. Very committed, cleaver and very nice

FH

Fadi Hamdan

Kishan is a very competent and reliable Magento developer.

Kishan is a very competent and reliable Magento developer. He was able to handle every task I gave him quickly and efficiently and his communication was top-notch. I look forward to continuing to work with

PJ

Philip Johnston

Newthink

Perfect and professional help on my Magento project.

Perfect and professional help on my Magento project. Will hire him again once needed. Thanks for your work

ND

Neal De Vreede

great professional with enthusiasm, knowledge, skill and exceptional patience in solving problems.

great professional with enthusiasm, knowledge, skill and exceptional patience in solving

D

Dennis

Bay Tech

Excellent developer.

Excellent developer. Helped us get to where we needed to be and fixed the problems i a fast period of time. Very

D

Darren

CEO, Ocean Telecom

Quick response and good comunication

Quick response and good

KW

Krittakorn Wongsuttipakorn

Performing security audits across

  • United States
  • United Kingdom
  • Canada
  • Australia
  • Germany
  • France
  • Netherlands
  • India
FAQ

Twelve questions security teams actually ask

Is admin 2FA really mandatory on Magento 2.4.x?

Yes — Magento has shipped built-in 2FA since 2.4.0 via the Magento_TwoFactorAuth module, and it’s enabled by default. The supported providers are Google Authenticator, Authy, Duo Security, and U2F hardware keys.

What the audit checks is whether every admin user is enforced to use it — not whether the module is installed. Two common gaps I see:

  • The module is enabled but admins can dismiss the setup prompt. Fix: php bin/magento config:set twofactorauth/general/force_providers google so the prompt is non-dismissible.
  • Some admins use IP-allowlist bypass tokens. The bypass token mechanism is fine for emergency access but should be 1-time-use and rotated quarterly — not standing entries.

The Adobe Commerce hosted edition adds SSO via SAML/OAuth, which counts as 2FA for the purposes of this audit (assuming your IdP enforces MFA). If you’re on Open Source self-hosted, the built-in TOTP is the baseline.

Cost: $0. Effort: ~2 hours to enforce + train the admin team. There is no excuse for a "No" on q1.

How do I enable HSTS on Magento (and what max-age?)

HSTS is set at the web-server layer, not in Magento itself. Three places:

  • nginx (most Magento hosting): add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; inside the SSL server block.
  • Apache: Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" in the SSL VirtualHost.
  • Cloudflare / Fastly / CDN edge: set the header at the edge; same value.

Magento Admin → Stores → Configuration → Web → Use Secure URLs On Storefront + Admin = Yes. This makes Magento generate https:// URLs everywhere — HSTS then enforces the protocol at the browser.

max-age guidance:

  • Testing: Start with max-age=300 (5 minutes) for the first hour, verify nothing breaks.
  • Staging: Move to max-age=86400 (1 day) and run a week of traffic.
  • Production: Set to max-age=31536000 (1 year) with includeSubDomains and preload.
  • HSTS Preload list: Submit at hstspreload.org after 90+ days of stable 1-year max-age. Removal takes months — only preload when you’re sure.

The audit’s q7 specifically rewards a 1-year max-age with includeSubDomains. Shorter values count as partial credit; missing entirely is a "No".

What’s the difference between PCI SAQ A and SAQ A-EP?

The PCI Self-Assessment Questionnaire scope determines how much compliance burden you carry. For Magento merchants:

  • SAQ A: You outsource all cardholder data handling. The full checkout (incl. iframe / redirect) lives on a PCI-validated third-party provider (Stripe Hosted, Braintree Drop-in, PayPal Hosted, Adyen HPP). Magento never touches the PAN. ~22 questions, low scope, the easiest path.
  • SAQ A-EP: Your site renders the payment page (or fragments) but the actual PAN entry goes to a PCI provider via JS SDK / iframe (Stripe Elements, Braintree Hosted Fields, Adyen Drop-in). You "could" potentially impact card data via XSS / JS injection, so you carry more responsibility. ~191 questions, full vulnerability scanning + penetration testing required quarterly.
  • SAQ D: You touch raw PAN in any way (logged, stored, processed in your app). ~329 questions, full PCI DSS audit by a QSA. Avoid at all costs.

The audit’s q12 specifically rewards being on SAQ A or SAQ A-EP. If you’re unsure which you are, your acquirer / payment gateway has a portal that tells you. The biggest mistake I see is merchants who think they’re on SAQ A but their checkout pulls a custom JS file from a non-PCI third party — that’s SAQ A-EP territory, sometimes SAQ D if it touches the form.

Why monthly Adobe patches instead of "set and forget"?

Adobe ships security patches on a roughly monthly cadence via the Adobe Security Center. Recent examples:

  • APSB24-40 (June 2024): 7 CVEs including a critical XXE injection (CVSS 9.1).
  • APSB24-61 (Aug 2024): Critical XSS in admin (CVSS 8.1) + 2 other highs.
  • APSB25-08 (Jan 2025): 9 CVEs, one of which was a critical pre-auth RCE.

The math: every month you delay patching, you carry the open-window risk for that month’s CVEs. Within 72 hours of a CVE disclosure, automated scanners + exploit kits start probing the affected versions. By day 30 post-disclosure, ~40% of unpatched stores show probing in their access logs.

The "set and forget" pattern is the single most common cause of breach in mid-market Magento stores. The audit’s q17 rewards a documented ≤30-day cadence from patch release to production deployment.

Pattern that works:

  1. Subscribe to the Adobe Security Center RSS feed.
  2. Within 24h of patch release: assess severity vs your env, queue for next deploy window.
  3. Within 7 days: apply to staging, run full UAT.
  4. Within 30 days: deploy to production. Document the date in a security log for audit trail.
What’s a Vault token and why does the audit care?

A Vault token (also called a "payment method token" or "card token") is an opaque reference string the payment gateway gives you in exchange for the customer’s real card number. The real card data lives in the gateway’s PCI-validated vault — you only ever see / store the token.

Example flow (Stripe):

  1. Customer enters card on checkout via Stripe Elements (JS SDK).
  2. Stripe.js sends the PAN directly to Stripe’s servers — it never touches your DOM, your nginx, your PHP.
  3. Stripe returns a token like pm_1NqAbcXyZ.
  4. Magento stores pm_1NqAbcXyZ in sales_order_payment.additional_information (never cc_number).
  5. Future charges use the token: POST /charges {"payment_method": "pm_1NqAbcXyZ"}.

The audit&rsquo>s q13 checks that no raw PAN ever touches your DB. The check looks at:

  • Whether any extension stores cc_number, cc_cid, cc_exp_year in cleartext (legacy COD-style payment methods are notorious for this).
  • Whether your saved-cards feature uses gateway tokens (Stripe Vault, Braintree Vault, Adyen RecurringDetail) or a custom DB column.
  • Whether refunds + retries route through the gateway by token, not by re-asking for the PAN.

A breach where raw PANs are leaked has a 6-figure cost minimum in card-brand fines + customer remediation. Tokenization eliminates the worst case — the gateway carries the liability.

GDPR vs PCI — how do the scopes overlap?

They overlap in 3 places and diverge in the rest:

Overlap (both frameworks require these):

  • Encryption at rest: PCI mandates it for cardholder data; GDPR mandates it for any "special category" personal data — both effectively require database-at-rest encryption.
  • Access logging: PCI requires admin-access logs for ~12 months; GDPR requires audit trails for processing of personal data. One SIEM serves both.
  • Breach notification: PCI doesn’t mandate customer notification but card brands do (typically 30 days); GDPR mandates regulator notification within 72 hours of awareness.

PCI-only (not GDPR):

  • Specific cryptography requirements (e.g. TLS 1.2+ mandate).
  • Quarterly external vulnerability scans by an ASV.
  • Annual penetration testing for SAQ A-EP and higher.
  • Specific compensating controls + scoping rules.

GDPR-only (not PCI):

  • Right to data export (subject access request, 30-day SLA).
  • Right to be forgotten (data deletion, 30-day SLA).
  • Lawful basis documentation for every processing activity.
  • DPIA (Data Protection Impact Assessment) for high-risk processing.
  • Privacy by design + by default.

The audit’s q14 specifically checks for the GDPR-only data-export endpoint, because PCI doesn’t cover that and stores often miss it. If you sell to EU/UK customers, GDPR applies regardless of where your servers live.

What’s File Integrity Monitoring (FIM) and is it worth it?

FIM watches a defined set of files / directories and alerts when anything changes. For Magento the standard scope is app/, vendor/, pub/, and the web-server config dirs.

Why it matters: the #1 post-exploitation move on a breached Magento store is to drop a webshell into pub/media/wysiwyg/ or a backdoor into a custom module. FIM catches both within minutes — the difference between a 4-hour incident and a 4-month one.

Three implementation tiers:

  • Free / DIY: AIDE (Linux) or OSSEC. Cron-runs nightly, emails a diff. Good for solo stores; manual triage.
  • Mid-tier ($50–$200/mo): Wazuh, Tripwire OS. Centralised dashboard, real-time alerts. Good for stores with a small ops team.
  • Enterprise (commercial): CrowdStrike Falcon, SentinelOne. Full EDR + FIM + threat intel correlation. Worth it for stores doing $50M+ GMV.

Common false-positive sources to whitelist: Magento’s generated/ directory (PHP DI cache), var/cache/, var/log/, pub/static/ (recompiled on deploy). Anywhere else changes are a real alert.

The audit’s q21 rewards FIM at any tier. A "No" here is one of the most-skipped controls in mid-market Magento — install it before next quarter.

Is /.well-known/security.txt actually worth publishing?

Yes. RFC 9116 defines a standard text file at /.well-known/security.txt telling researchers + automated scanners where to report findings before they go public.

The 30-line file looks like:

Contact: mailto:security@yourstore.com
Contact: https://yourstore.com/security/report
Expires: 2027-01-01T00:00:00.000Z
Preferred-Languages: en, de
Canonical: https://yourstore.com/.well-known/security.txt
Policy: https://yourstore.com/security/disclosure-policy
Acknowledgments: https://yourstore.com/security/hall-of-fame

What it buys you:

  • Researchers report responsibly: A good-faith researcher who finds an XSS bug will email security@ before tweeting it. Without security.txt they hunt for a contact, get frustrated, and often just disclose publicly.
  • Bug-bounty platforms find you: HackerOne, Bugcrowd, and Intigriti all check security.txt to know where to route reports for your domain.
  • Compliance frameworks credit it: ISO 27001, NIST CSF, and several PCI compensating controls reference a documented vulnerability-disclosure policy.

Cost: $0. Effort: 1 hour to write + deploy. The audit’s q22 rewards a current (non-expired) security.txt with at least a Contact and an Expires line. Update annually.

My score is under 60 — what should I do in the next 7 days?

A sub-60 score means at least one critical-severity control is failing. The 7-day stabilisation plan:

Day 1 (today):

  • Force-enable admin 2FA if it’s not (q1). 2-hour fix, eliminates the #1 attack vector.
  • Rotate all admin passwords. 1 hour.
  • Set the admin IP allowlist at nginx/WAF level (q3). 30 min.

Day 2-3:

  • Apply all outstanding Adobe security patches (q16, q17). 1 day including UAT.
  • If on TLS < 1.2, fix the load balancer config (q6). 30 min.
  • Enable HSTS with a short max-age (q7). 1 hour.

Day 4-5:

  • Take a fresh encrypted backup + verify the restore works (q11). 2 hours.
  • Verify no raw PAN is stored anywhere (q13). Query: SELECT * FROM sales_order_payment WHERE cc_number IS NOT NULL; — should return zero rows.
  • Check the PCI scope (q12) with your acquirer; if it’s SAQ D, move to a hosted/tokenized checkout.

Day 6-7:

  • Publish security.txt (q22). 1 hour.
  • Write a one-page IR plan (q24): who calls who, escalation tree, customer-notification thresholds. Even a 1-page draft beats nothing.
  • Re-run the audit. You should be over 70 by end of week.

If anything in the critical-severity list still scores "No" by day 7, that’s a deep-audit conversation. Book one.

Can I share the report with my hosting provider?

Yes — and you should. The audit covers controls that span the app layer (your responsibility) and the infrastructure layer (your hosting provider’s). The split:

Your hosting handles (typically):

  • q6 — TLS version + cipher suites on the load balancer.
  • q7 — HSTS header injection at nginx / Cloudflare.
  • q8 — WAF configuration (Cloudflare, AWS WAF, Sucuri).
  • q11 — Encrypted backups + off-site replication.
  • q19 — PHP version + EOL status.
  • q20 — OS / kernel patching cadence.
  • q23 — Server-log aggregation.

You handle (typically):

  • q1-q5 — All authentication controls (Magento admin).
  • q9, q10 — Security headers + CSP at the Magento layer.
  • q12-q15 — PCI scope, tokenization, GDPR endpoints.
  • q16-q18 — Magento + extension patching.
  • q21 — FIM on app/vendor/pub.
  • q22, q24, q25 — security.txt, IR plan, tabletop.

I recommend forwarding the report to your hosting provider with a note: “Here’s our self-audit. Can you confirm the items I’ve marked as hosting-side are accurate, and quote remediation for any that scored ‘No’?” Good hosts respond with a written confirmation + timeline. If they push back or go silent, that’s a hosting-quality signal.

Do I still need an external penetration test on top of this?

Yes — the audit and a pentest serve different purposes.

The audit (this tool): A self-assessment of 25 controls based on what you know about your environment. Catches policy + config gaps. Fast (5 min). Free. Repeatable quarterly.

A penetration test: An external party tries to actively exploit your environment using the same techniques as a real attacker. Catches implementation bugs the policy review can’t see. Slow (1–3 weeks). Costs $4k–$30k depending on scope. Done annually.

You need both because:

  • An audit might show "WAF active = Yes" — but a pentest might find the WAF rules don’t catch obscure injection variants.
  • An audit might show "2FA enforced = Yes" — but a pentest might find a forgotten /staging/ subdomain with a 2FA-bypassable admin.
  • An audit might show "TLS 1.2+ = Yes" — but a pentest might find one legacy SOAP API endpoint still accepting TLS 1.0.

Compliance angle: PCI DSS v4 requires annual external + internal pentests for SAQ A-EP and SAQ D. SOC 2 Type II auditors expect to see a recent pentest report. ISO 27001 + NIST CSF reference one.

Sequencing: Run this audit + remediate everything you can — then commission the pentest. A pentest on a partially-fixed environment is money wasted on findings you already knew about.

For Magento-specific pentests, I work with two firms I trust (HackerOne-listed, Magento-experienced) and can refer. Or commission directly — ~$8k–$15k for a typical mid-market Magento scope.

How is this different from your /magento-store-health-checklist?

Different scope, different depth, complementary.

/magento-store-health-checklist:

  • Broader — covers SEO, performance, UX, content, conversion, accessibility, plus security.
  • Lighter on security — ~10 security questions out of ~60 total.
  • Static checklist with self-rating; no weighted scoring.
  • Best for: a quarterly "is everything still okay" review.

/magento-security-score-checker (this tool):

  • Narrower — security-only across 5 categories.
  • Deeper — 25 questions weighted by severity, server-scored, with a prioritized fix list.
  • Real numeric output — 0-100 score + A/B/C/D/F + 5 sub-scores.
  • Best for: pre-PCI-audit prep, post-incident review, or a focused security improvement sprint.

Recommended cadence:

  • Monthly: Run /magento-store-health-checklist as a 15-min overall posture review.
  • Quarterly: Run this security score checker as a 5-min focused security drill.
  • Annually: Commission a real external pentest + (if applicable) PCI assessment.

The two tools share their philosophy: free, anonymous, honest, severity-weighted, no upsell required. If the score checker surfaces a critical gap, the health checklist will usually agree — just less specifically.

Score under 70? Let’s talk in the next 7 days.

A sub-70 score means at least one critical-severity gap is open. I’ll review your fix list, sequence the top 3 fixes, and quote a 2–6 week remediation sprint with locked scope.