🛡️ Diagnóstico de seguridad web
Audita las cabeceras de seguridad (HSTS, CSP, X-Frame-Options, etc.) y el contenido mixto con solo una URL.
📖 Qué te dice este diagnóstico
Este diagnóstico examina lo que revela una sola petición —cabeceras de respuesta, atributos de cookie, uso de TLS— e informa de la postura de seguridad visible desde fuera. No encuentra vulnerabilidades de aplicación. La inyección SQL o un control de acceso roto conviven perfectamente con una puntuación perfecta aquí. Lo que cubre es la capa en la que una línea de configuración cierra una puerta, y por eso es el mejor retorno por esfuerzo que vas a obtener.
| Elemento | Qué significa | Cómo corregirlo |
|---|---|---|
HttpOnly en las cookies |
Con él, document.cookie no puede leer el valor. Ni siquiera un XSS logrado se lleva el ID de sesión. |
Ponlo siempre en la cookie de sesión: session.cookie_httponly = 1 en PHP. Si algún valor debe leerse desde JavaScript, ponlo en otra cookie; quitar HttpOnly para poder leer la sesión echa por tierra el propósito. |
SameSite en las cookies |
Controla si la cookie viaja en peticiones originadas en otros sitios. Es una defensa estructural frente al CSRF, complementaria a los tokens, no sustitutiva. | Por defecto Lax, y Strict para acciones sensibles como pagos. Si pones None, Secure es obligatorio: sin él los navegadores modernos descartan la cookie, que es la razón habitual de que un SSO o un iframe deje de funcionar de golpe. |
| Información del servidor expuesta | Cabeceras como Server: nginx/1.18.0 o X-Powered-By: PHP/8.1.2 le dicen al atacante exactamente qué versión buscar en las listas de vulnerabilidades. |
Pon server_tokens off; en nginx y expose_php = Off en PHP. Esto gana tiempo, no es una defensa. Ocultar la versión importa mucho menos que actualizarla de verdad. |
| Contenido mixto | Una página HTTPS que carga scripts o imágenes por http://. El navegador bloquea los scripts sin más y degrada el candado por las imágenes. | Reescribe las URL incrustadas a https://. Si un servicio de terceros no tiene HTTPS, la decisión real es si seguir usándolo. Durante una migración, Content-Security-Policy: upgrade-insecure-requests puede promocionarlas automáticamente. |
Una puntuación perfecta aquí significa sólo que la configuración visible desde fuera está en orden. La lógica de autenticación y autorización, el tratamiento de la entrada y las vulnerabilidades conocidas de tus dependencias hay que revisarlos aparte. Empezar por una auditoría de dependencias —composer audit, npm audit— es el siguiente paso práctico.