CSP Policy Builder
Build Content-Security-Policy headers to control iframe embedding. Configure frame-ancestors directive to specify which domains can embed your website.
Frame-Ancestors Policy
Generated Headers
Content-Security-Policy (Modern)
Content-Security-Policy: frame-ancestors 'none';
X-Frame-Options (Legacy Support)
X-Frame-Options: DENY
Implementation Examples
Nginx
# In your nginx.conf or site config
location / {
add_header Content-Security-Policy: frame-ancestors 'none' always;
add_header X-Frame-Options: DENY always;
} Apache (.htaccess)
# In your .htaccess or apache config
<IfModule mod_headers.c>
Header always set frame-ancestors 'none'
Header always set X-Frame-Options: DENY
</IfModule> Node.js / Express
// Express.js middleware
app.use((req, res, next) => {
res.setHeader('Content-Security-Policy', 'frame-ancestors 'none'');
res.setHeader('X-Frame-Options', 'DENY');
next();
});Security Considerations
Clickjacking Protection: These headers protect against clickjacking attacks where malicious sites embed your pages to trick users into clicking hidden elements.
Use Both Headers: Implement both CSP frame-ancestors and X-Frame-Options for maximum browser compatibility. Modern browsers prefer CSP, but older browsers need X-Frame-Options.
Test Thoroughly: After implementing, test your pages to ensure legitimate embedding still works where intended. Use our iframe tester to verify.
HTTPS Required: When specifying domains, always use HTTPS URLs for security. Mixed content will be blocked by browsers.