Java HttpOnly标志不工作
我在响应头Java HttpOnly标志不工作,java,javascript,http-headers,xss,Java,Javascript,Http Headers,Xss,我在响应头set Cookie中设置了HttpOnly标志,如下所示 String sessionid = httpReq.getSession().getId(); httpRes.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + ";HttpOnly"); 但我仍然可以通过浏览器控制台中的document.cookie访问cookie。 我设置此标志的方式是否错误?如果您使用的是Servlet版本3或更高版本,则可以在web.xml中指
set Cookie
中设置了HttpOnly
标志,如下所示
String sessionid = httpReq.getSession().getId();
httpRes.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + ";HttpOnly");
但我仍然可以通过浏览器控制台中的document.cookie
访问cookie。
我设置此标志的方式是否错误?如果您使用的是Servlet版本3或更高版本,则可以在web.xml中指定此标志,如下所示:
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
真的
有关更多详细信息和配置选项,请参阅模式定义:您是否验证了线路上发生的情况?您使用的是哪种浏览器?您可以在页面内或仅在控制台内通过Javascript访问cookie吗?@JonSkeet我已在浏览器中检查了响应标题。
Set cookie
头被视为Set cookie:JSESSIONID=session\u id;HttpOnly
。我检查过的浏览器是Firefox和Google Chrome。我已尝试仅在控制台中访问cookie。我没有尝试从页面内的Javascript访问它。控制台并不总是反映现实。您必须尝试通过以下方式访问此cookie:Javascript@hindmost我尝试从Javascript访问此cookie,我能够做到这一点。@最后面的响应我需要设置HttpOnly
标志。对于单页应用程序,我是否需要在单个HTML文件响应或所有JavaScript文件的响应上设置HttpOnly
标志?我没有使用servlet版本3,因此使用上述方法设置HttpOnly标志。但我仍然能够访问cookie。