说说 Cookie 的 HttpOnly 属性

3,110 阅读1分钟

HttpOnly 最早是由微软在 IE6 中实现的,现在已成为标准 。 浏览器会禁止页面中的 JavaScript 访问带有 HttpOnly 属性的 Cookie。 目的很明显,就是为了应对 Cookie 劫持攻击。

Cookie 使用过程是这样的:

  1. 浏览器首次向服务器发起请求。
  2. 服务器响应时,会发送 Set-Cookie 响应头;浏览器会把这个头写入 Cookie。
  3. 在 Cookie 到期前,浏览器访问该域下的所有请求,都会带上这个 Cookie。

在 Java EE 中,可以这样为 Cookie 加入 HttpOnly 标识:

response.setHeader("Set-Cookie","deniro=1; Path=/;Domain=www.deniro.net;" +
                "Max-Age=30;HTTPOnly");

如果没有加 HttpOnly 标识,就会被 JS 检测到:


用于认证的关键 Cookie,建议都加上 HttpOnly 标识。