summaryrefslogtreecommitdiff
path: root/apache2/conf-available/local-securityheaders.conf
blob: ce8561fd25e3351f05be1b7d85b438baff492fb1 (plain)
  1. # Security headers
  2. # More info: <https://securityheaders.com/>
  3. # enable HSTS
  4. # <http://www.debian-administration.org/articles/662>
  5. <IfDefine !_NO_HSTS>
  6. <IfDefine !_NO_HSTS_SUBDOMAINS>
  7. <IfDefine !_NO_HSTS_PRELOAD>
  8. Header set Strict-Transport-Security: "max-age=15768000;includeSubdomains;preload"
  9. </IfDefine>
  10. <IfDefine _NO_HSTS_PRELOAD>
  11. Header set Strict-Transport-Security: "max-age=15768000;includeSubdomains"
  12. </IfDefine>
  13. </IfDefine>
  14. <IfDefine _NO_HSTS_SUBDOMAINS>
  15. <IfDefine !_NO_HSTS_PRELOAD>
  16. Header set Strict-Transport-Security: "max-age=15768000;preload"
  17. </IfDefine>
  18. <IfDefine _NO_HSTS_PRELOAD>
  19. Header set Strict-Transport-Security: "max-age=15768000"
  20. </IfDefine>
  21. </IfDefine>
  22. </IfDefine>
  23. # Avoid Clickjack attacks
  24. Header always set X-Frame-Options "SAMEORIGIN"
  25. # Enable reflective XSS protection and block response when detecting an attack
  26. Header always set X-Xss-Protection "1; mode=block"
  27. # Use strict MIME types
  28. Header always set X-Content-Type-Options "nosniff"
  29. # Do not send the referrer header when navigating from HTTPS to HTTP,
  30. # but always send the full URL when navigating from HTTP to any origin.
  31. # More info: <https://scotthelme.co.uk/a-new-security-header-referrer-policy/>
  32. Header always set Referrer-Policy "no-referrer-when-downgrade"
  33. # Allow images, scripts, AJAX, form actions, and CSS from the same origin,
  34. # and disallow any other resources to load (eg object, frame, media, etc).
  35. # More info: <https://content-security-policy.com/>
  36. Header always set Content-Security-Policy "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self';"
  37. # More info: <https://www.w3.org/TR/permissions-policy-1/>
  38. # feature list: <https://github.com/w3c/webappsec-permissions-policy/blob/master/features.md>
  39. Header always set Permissions-Policy "accelerometer(self), ambient-light-sensor(self), autoplay(self), battery(self), camera(self), cross-origin-isolated(self), display-capture(self), document-domain(self), encrypted-media(self), execution-while-not-rendered(self), execution-while-out-of-viewport(self), fullscreen(self), geolocation(self), gyroscope(self), magnetometer(self), microphone(self), midi(self), navigation-override(self), payment(self), picture-in-picture(self), publickey-credentials-get(self), screen-wake-lock(self), sync-xhr(self), usb(self), web-share(self), xr-spatial-tracking(self)"