17.10. 配置 HTTP-Only Session Management Cookie
HTTP API 和非 HTTP API (如 JavaScript)都可以访问会话管理 Cookie。JBoss EAP 提供了将 HttpOnly 标头作为 Set-Cookie 响应标头的一部分发送到客户端的功能,通常是浏览器。在支持的浏览器中,启用此标头告诉浏览器应该阻止通过非 HTTP API 访问会话管理 Cookie。将会话管理 Cookie 限制为仅 HTTP API 可以帮助缓解会话 Cookie 的威胁,从而通过跨站点脚本攻击来缓解会话 Cookie 的威胁。要启用此行为,http-only 属性应设为 true。
重要
使用 HttpOnly 标头实际上不会阻止跨站点脚本自行攻击,而是通知浏览器。浏览器还必须支持 HttpOnly 才能使此行为生效。
重要
使用 http-only 属性仅将限制应用到会话管理 Cookie,而不是其他浏览器 Cookie。
http-only 属性在 undertow
子系统中的两个位置设置:
- 在 servlet 容器中,作为会话 Cookie 设置
- 在服务器的 host 部分中,作为单点登录属性
为 Servlet 容器会话 Cookie 配置 host-only
为 servlet 容器会话 Cookie 配置 host-only 属性:
/subsystem=undertow/servlet-container=default/setting=session-cookie:add
/subsystem=undertow/servlet-container=default/setting=session-cookie:write-attribute(name=http-only,value=true)
reload
为 Host Single Sign-On 配置 host-only
为主机单点登录配置 host-only 属性:
/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:add
/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:write-attribute(name=http-only,value=true)
reload