Los headers de seguridad son headers HTTP de respuesta que mejoran la seguridad de aplicaciones web instruyendo a navegadores cómo comportarse.
Headers Esenciales
1. Content-Security-Policy (CSP)
Content-Security-Policy: default-src 'self'; script-src 'self'
2. Strict-Transport-Security (HSTS)
Strict-Transport-Security: max-age=31536000; includeSubDomains
3. X-Frame-Options
X-Frame-Options: DENY
Testing
def test_security_headers():
response = requests.get("https://example.com")
assert 'Content-Security-Policy' (como se discute en [OWASP ZAP Automation: Security Scanning in CI/CD](/blog/owasp-zap-automation)) in response.headers
assert 'Strict-Transport-Security' (como se discute en [Penetration Testing Basics for QA Testers](/blog/penetration-testing-basics)) in response.headers
assert 'X-Frame-Options' in response.headers
Herramientas
- SecurityHeaders.com
- Mozilla Observatory
- Custom scripts
Implementación
Node.js
const helmet = require('helmet');
app.use(helmet());
Nginx
add_header Content-Security-Policy "default-src 'self'" always;
add_header Strict-Transport-Security "max-age=31536000" always;
Conclusión
Los security headers son capa de defensa crucial. Testing regular asegura implementación correcta y protección contra vulnerabilidades web comunes.