How to fix x frame options weak on Adobe Commerce (Magento)
Replace the weak X-Frame-Options header value with DENY or SAMEORIGIN to prevent clickjacking attacks on your store.
Steps for Adobe Commerce (Magento)
- SSH into your server or use your hosting control panel to access your Nginx or Apache config.
- For Nginx: edit /etc/nginx/nginx.conf or the Magento vhost config (commonly /etc/nginx/sites-available/magento.conf) and add inside the server{} block: add_header X-Frame-Options "DENY" always; and add_header Content-Security-Policy "frame-ancestors 'none';" always;
- For Apache: edit your .htaccess in the Magento root (pub/.htaccess for Magento 2) and add: Header always set X-Frame-Options "DENY"
- Alternatively in Magento 2 Admin: go to Stores → Configuration → General → Web → and look for the 'X-Frame-Options Header' field (available in some versions) — set it to SAMEORIGIN or DENY.
- If running Magento 2.4+: you can also set this in app/etc/env.php or via a custom module that injects the header through a response plugin (interceptor on Magento\Framework\App\Response\Http).
- After deployment, run: bin/magento cache:flush, then verify headers with DevTools or curl -I https://yourdomain.com.
What is x frame options weak?
The `X-Frame-Options` HTTP response header tells browsers whether your website is allowed to be loaded inside an `<iframe>`, `<frame>`, or `<object>` on another site. There are two safe values: `DENY` (no framing allowed anywhere) and `SAMEORIGIN` (only your own site can frame your pages). A third value, `ALLOW-FROM`, was once supported to whitelist a specific external domain — but it is now obsolete, ignored by most modern browsers, and therefore provides no real protection. When this header is missing, set to an unsupported value like `ALLOW-FROM`, or combined with `SAMEORIGIN` in a way that browsers parse inconsistently, your pages are effectively unprotected against framing by attackers.
Without a properly enforced `X-Frame-Options` header, attackers can silently embed your store's checkout, login, or account pages inside invisible iframes on malicious websites — a technique called clickjacking. A shopper thinks they're clicking a button on the attacker's page, but they're actually clicking your hidden iframe: entering payment details, changing account settings, or completing unwanted purchases. This is a real theft and fraud vector that can lead to chargebacks, customer complaints, regulatory scrutiny under PCI-DSS, and loss of consumer trust. Search engines like Google also consider security posture signals when evaluating site quality; a site known to be compromised through clickjacking can suffer ranking and reputation damage. Fixing this header takes under 30 minutes and closes the vulnerability entirely for all modern browsers.
See the complete X frame options weak guide for every platform and the full background.
Not sure if your Adobe Commerce (Magento) store has this?
Run a free SEOLZ scan — we’ll find x frame options weak and every other issue across your whole site.
Scan my site free