--- name: audit_http_headers kind: function lang: bash domain: cybersecurity version: "1.0.0" purity: impure signature: "audit_http_headers(url: string) -> void" description: "Audita las cabeceras HTTP de seguridad de una URL: verifica la presencia de HSTS (con validación de max-age mínimo de 6 meses), Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy y cabeceras CORS. También detecta cabeceras que exponen información del servidor." tags: [bash, cybersecurity, web, http, headers, security, hsts, csp, hardening, pendiente-usar] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: url desc: "URL del sitio web a auditar; si no tiene esquema se añade https:// automáticamente" output: "imprime el estado de cada cabecera de seguridad (ok/falta/advertencia), el valor de las presentes y cabeceras que exponen información del servidor" tested: false tests: [] test_file_path: "" file_path: "bash/functions/cybersecurity/audit_http_headers.sh" source_repo: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/egutierrez/DevLauncher.git" source_license: "MIT" source_file: "scripts/linux/ciberseguridad/web/cabeceras_http.sh" --- ## Ejemplo ```bash source bash/functions/cybersecurity/audit_http_headers.sh # Con URL completa audit_http_headers https://example.com # Sin esquema (añade https:// automáticamente) audit_http_headers example.com # Seguir redirecciones audit_http_headers http://example.com ``` ## Notas Usa `curl -sI --location` para seguir redirecciones y obtener solo cabeceras. El check de HSTS valida que `max-age` sea >= 15.768.000 segundos (6 meses), valor mínimo recomendado por OWASP. Las cabeceras Server, X-Powered-By, X-AspNet-Version y X-Generator se marcan como advertencia por revelar información del stack tecnológico. Timeout de 15 segundos para evitar cuelgues.