HTTP/Estado y Seguridad/Cookies HttpOnly

De Wikilibros, la colección de libros de texto de contenido libre.

Cookies HttpOnly[editar]

HttpOnly es un indicador adicional incluida en un encabezado de respuesta HTTP Set-Cookie. El uso de la bandera HttpOnly cuando se genera una cookie ayuda a mitigar el riesgo de script del lado del cliente que accede a la cookie protegida (si el navegador lo soporta).

  • Ejemplo del uso de la sintaxis

Set-Cookie: <name>=<value>[; <Max-Age>=<age>] [; expires=<date>][; domain=<domain_name>] [; path=<some_path>][; secure][; HttpOnly]

Si la bandera HttpOnly (opcional) está incluida en el encabezado de respuesta HTTP, la cookie no se puede acceder a través de script del lado del cliente (de nuevo si el navegador es compatible con esta bandera). Como resultado, incluso si existe un cross-site scripting (XSS), falla, y un usuario accede accidentalmente a un enlace que explota esta falla, el navegador (principalmente Internet Explorer) no revelan la cookie a un tercero. Si un navegador no soporta HttpOnly y un sitio web intenta establecer una cookie de HttpOnly, la bandera HttpOnly será ignorado por el navegador, creando así una secuencia de comandos de la Cookie tradicional accesible. Como resultado, la cookie (típicamente su cookie de sesión) se vuelve vulnerable al robo de modificación mediante script malicioso.

  • Sun Java Enterprise Edition 6 (JEE 6)

Desde Sun Java Enterprise Edition 6 (JEE 6), que adoptó la tecnología Java Servlet 3.0, es fácil configuración mediante programación HttpOnly bandera en una cookie, de hecho, métodos como setHttpOnly y isHttpOnly están disponibles en la interfaz de la Cookie, y también para las cookies de sesión (JSESSIONID).

Cookie cookie = getMyCookie("myCookieName");

cookie.setHttpOnly(true);


Por otra parte, ya JEE 6 también es fácil configuración declarativa HttpOnly en la cookie de sesión, aplicando la siguiente configuración en el descriptor de despliegue WEB-INF / web.xml:

<session-config>

<cookie-config>
 <http-only>true</http-only>
</cookie-config>

</session-config>