Utilizing Security Headers for Web Application Defense

Understand how to implement HTTP security headers that protect web applications from common vulnerabilities.

0 likes
17 views

Rule Content

{
  "title": "Utilizing Security Headers for Web Application Defense",
  "description": "Ensure web applications are protected against common vulnerabilities by implementing appropriate HTTP security headers.",
  "category": "Security",
  "severity": "High",
  "patterns": [
    {
      "pattern": "Strict-Transport-Security",
      "description": "Enforces secure (HTTPS) connections to the server to prevent man-in-the-middle attacks.",
      "recommendation": "Set the 'Strict-Transport-Security' header with a 'max-age' of at least 31536000 seconds (1 year) and include the 'includeSubDomains' directive.",
      "example": "Strict-Transport-Security: max-age=31536000; includeSubDomains"
    },
    {
      "pattern": "Content-Security-Policy",
      "description": "Controls the sources from which content can be loaded, mitigating cross-site scripting (XSS) attacks.",
      "recommendation": "Define a 'Content-Security-Policy' header that restricts sources for scripts, styles, and other resources to trusted origins.",
      "example": "Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com"
    },
    {
      "pattern": "X-Content-Type-Options",
      "description": "Prevents browsers from interpreting files as a different MIME type to avoid MIME confusion attacks.",
      "recommendation": "Set the 'X-Content-Type-Options' header to 'nosniff' to disable MIME type sniffing.",
      "example": "X-Content-Type-Options: nosniff"
    },
    {
      "pattern": "X-Frame-Options",
      "description": "Protects against clickjacking attacks by controlling whether the browser should allow the page to be displayed in a frame.",
      "recommendation": "Set the 'X-Frame-Options' header to 'DENY' to prevent the page from being displayed in a frame.",
      "example": "X-Frame-Options: DENY"
    },
    {
      "pattern": "Referrer-Policy",
      "description": "Controls how much referrer information is included with requests to protect user privacy.",
      "recommendation": "Set the 'Referrer-Policy' header to 'no-referrer' to prevent referrer information from being sent.",
      "example": "Referrer-Policy: no-referrer"
    },
    {
      "pattern": "Permissions-Policy",
      "description": "Controls which browser features can be used on the page to enhance security.",
      "recommendation": "Define a 'Permissions-Policy' header that restricts the use of sensitive browser features.",
      "example": "Permissions-Policy: geolocation=(), microphone=()"
    }
  ],
  "references": [
    {
      "title": "OWASP Secure Headers Project",
      "url": "https://owasp.org/www-project-secure-headers/"
    },
    {
      "title": "An Overview of Best Practices for Security Headers",
      "url": "https://developer.okta.com/blog/2021/10/18/security-headers-best-practices"
    },
    {
      "title": "The 8 HTTP Security Headers Best Practices",
      "url": "https://www.globaldots.com/resources/blog/the-8-http-security-headers-best-practices/"
    }
  ]
}