DevPrep
  • Interview Prep
  • Projects
  • Resources
  • Pricing
  • About Us
Submit Question
DevPrep
  • Pricing
  • About Us
Submit Question
  1. Home
  2. Articles
  3. Frontend Engineering
  4. Web Security Headers: A Complete Checklist
XLinkedInReddit
MediumFrontend Engineering

Web Security Headers: A Complete Checklist

D
DevPrep Team
February 10, 2026·1 min read·0
Table of Contents
  • Content-Security-Policy (CSP)
  • Essential Headers
  • Implementation
  • Testing Your Headers

Security headers are your first line of defense. At Google, every response includes these headers.

Content-Security-Policy (CSP)

The most powerful security header. Controls what resources can load on your page.

Content-Security-Policy: 
  default-src 'self';
  script-src 'self' 'nonce-abc123';
  style-src 'self' 'unsafe-inline';
  img-src 'self' data: https:;
  connect-src 'self' https://api.example.com;
  font-src 'self' https://fonts.gstatic.com;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self';

Essential Headers

HeaderValuePurpose
Strict-Transport-Securitymax-age=31536000; includeSubDomainsForce HTTPS for 1 year
X-Content-Type-OptionsnosniffPrevent MIME type sniffing
X-Frame-OptionsDENYPrevent clickjacking
Referrer-Policystrict-origin-when-cross-originControl referrer info
Permissions-Policycamera=(), microphone=(), geolocation=()Disable unused APIs
Cross-Origin-Opener-Policysame-originIsolate browsing context
Cross-Origin-Embedder-Policyrequire-corpPrevent loading cross-origin without CORS

Implementation

// Express middleware
app.use((req, res, next) => {
  res.setHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains");
  res.setHeader("X-Content-Type-Options", "nosniff");
  res.setHeader("X-Frame-Options", "DENY");
  res.setHeader("Referrer-Policy", "strict-origin-when-cross-origin");
  res.setHeader("Permissions-Policy", "camera=(), microphone=(), geolocation=()");
  next();
});

// Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;

Testing Your Headers

  • Use securityheaders.com for a quick grade
  • Chrome DevTools → Network → Response Headers
  • Use Report-URI or report-to for CSP violation monitoring

Related Articles

MediumFrontend Engineering

System Design #12: Design a Multi-Step Form Wizard

7 min read
MediumFrontend Engineering

Mastering Senior-Level JavaScript Interview Concepts

2 min read
MediumFrontend Engineering

System Design #9: Design a Collaborative Text Editor

9 min read

Comments (0)

Sign in to leave a comment.

No comments yet. Be the first to comment.

Table of Contents

  • Content-Security-Policy (CSP)
  • Essential Headers
  • Implementation
  • Testing Your Headers

Series

View all Frontend Engineering articles →

Practice

  • JavaScript
  • DSA
  • Machine Coding
  • System Design

Resources

  • Learning Tracks
  • Articles
  • Roadmaps
  • Compare Concepts
  • Glossary
  • Developer Tools
  • All Questions

Company

  • About
  • Pricing

Legal

  • Privacy Policy
  • Terms of Service
DevPrep

© 2026 DevPrep. All rights reserved.