Mi pregunta es realmente simple, ¿se necesitan indicadores HttpOnly o Secure si un sitio web no tiene una parte privada accesible con inicio de sesión?
Estas marcas son útiles si las cookies con las que está trabajando contienen información confidencial (como las cookies de sesión). Ayudan a proteger sus cookies para que no se vean comprometidas en algunos escenarios de ataque.
Para recapitular:
Una cookie marcada como Secure
solo se envía al servidor si la conexión es segura (es decir, HTTPS). Es decir, un atacante hombre en el medio no puede capturarlos interceptando una conexión HTTP simple a su sitio.
Los scripts no pueden acceder a una cookie marcada con HttpOnly
. Es decir, una vulnerabilidad XSS en su sitio no permitiría a un atacante exfiltrar directamente una cookie HttpOnly
a través de document.cookie
de Javascript.
Si todas sus cookies no son sensibles (por ejemplo, una configuración de idioma), no tendría que reforzar el acceso con estas banderas. Pero si nunca usa Javascript para acceder a las cookies y su dominio completo solo está disponible a través de HTTPS, es una buena práctica agregarlas.
Depende de para qué usas las cookies.
HttpOnly hace que la cookie sea inaccesible desde JavaScript. Esto es bueno para las cookies de sesión, ya que significa que un atacante que explota XSS no puede robarlas. Sin embargo, en la mayoría de las situaciones, debe leer las cookies con JS, y luego configurar la bandera HttpOnly no es realmente una opción. Por lo tanto, HttpOnly se utiliza principalmente para cookies de sesión.
En cuanto al indicador de seguridad, a menos que necesite enviar específicamente la cookie a través de HTTP, siempre debe establecerla. Dado que las cookies se envían en todas las solicitudes a su dominio, incluso si no son necesarias, es fácil filtrarlas si solo realiza una solicitud HTTP. Por ejemplo, si sirve imágenes estáticas a través de HTTP y sus cookies no están marcadas como seguras, las enviará sin cifrar. Si las cookies contienen datos confidenciales, es muy malo.
Por lo tanto, para tomar una decisión, debe comprender el propósito de estos indicadores y para qué se utilizan las cookies. No hay una respuesta general.
Si su sitio no utiliza cookies (como se requeriría para un sitio con un inicio de sesión), no solo no necesita los indicadores HttpOnly o Secure, sino que realmente no puede usalos, usalos a ellos. Simplemente no es posible, ya que esas marcas solo se pueden establecer en las cookies.
Si está utilizando cookies para otra cosa además de los inicios de sesión de usuarios, entonces sí, establecer esas marcas en sus cookies podría potencialmente beneficiar la privacidad y / o seguridad de sus usuarios al dificultar la tarea de un atacante MITM o un script de terceros en su sitio para leer esos valores.
Teniendo en cuenta lo trivial que suele ser usar HttpOnly y Secure, a menos que tenga una razón específica por la que necesita que se pueda acceder a sus cookies sobre texto sin formato o mediante JavaScript, también podría establecer esas marcas si puede.
Lea otras preguntas en las etiquetas cookies