Nginx y Apache Security Headers
Escrito el 2022-10-05 por Alberto Ferrer
Tiempo de lectura: 2 minuto(s)
Etiquetas:
nginx
apache
security headers
Security Headers para Apache y Nginx actualizados, una breve reseña de los mismos. Este breve articulo no es mas que una nota o cheatsheet de los security headers a utilizar y requeridos en su mayoría. Si desean leer sobre el tema pueden seguir el siguiente enlace.
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header Feature-Policy "microphone none;camera none;geolocation none;";
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Expect-CT "max-age=31536000; report-uri=https://www.barrahome.org/contact";
add_header Access-Control-Allow-Origin "*" always;
El equivalente para Apache seria utilizando algo como esto:
<IfModule mod_headers.c>
Header always set X-XSS-Protection "1; mode=block"
<IfModule mod_headers.c>
Pueden observar los resultados aplicados en este blog visitando el sitio de Serpworx.
Actualización: Si gustan aprender sobre los distintos headers de seguridad los invito a visitar el sitio de Scott Helme el cual contiene un extenso articulo sobre COEP COOP CORP CORS CORB y mas.
Ahí mismo encontraran las explicaciones para:
- COEP: Cross Origin Embedder Policy
- COOP: Cross Origin Opener Policy
- CORP: Cross Origin Resource Policy
- CORS: Cross Origin Resource Sharing
- CORB: Cross Origin Read Blocking
La salida de las cabeceras se ven de la siguiente forma:
curl -I https://www.barrahome.org
HTTP/2 200
server: nginx
date: Tue, 18 Oct 2022 23:20:03 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
x-powered-by: Myself & few nerds.
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
feature-policy: microphone none;camera none;geolocation none;
permissions-policy: microphone none;camera none;geolocation none;
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src * data: 'unsafe-eval' 'unsafe-inline'
strict-transport-security: max-age=31536000; includeSubDomains; preload
expect-ct: max-age=31536000; report-uri=https://www.barrahome.org/contacto
access-control-allow-origin: https://www.barrahome.org/