Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说java httponly_HttpOnly是个什么鬼,希望能够帮助你!!!。
写这篇的目的是,今天群里面提到了HttpOnly这个标签,所以专门的mark了下。
谁 在什么时候发明了HttpOnly
2002年微软为ie6的sp1创造了HttpOnly
什么是HttpOnly
HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险(如果浏览器支持的话)
下面的例子展示了如何设置Set-Cookie 返回头的语法
Set-Cookie: =[; =]
[; expires=][; domain=]
[; path=][; secure][; HttpOnly]
如果HTTP响应标头中包含HttpOnly标志(可选),客户端脚本将无法访问cookie(如果浏览器支持该标志的话)。因此即使客户端存在跨站点脚本(XSS)漏洞,浏览器也不会将Cookie透露给第三方。
如果浏览器不支持HttpOnly,并且后端服务器尝试设置HttpOnly cookie,浏览器也会忽略HttpOnly标志,从而创建传统的,脚本可访问的cookie。那么该cookie(通常是会话cookie)容易受到XSS攻击
使用HttpOnly缓解最常见的XSS攻击
大多数XSS攻击都是针对会话cookie的盗窃。后端服务器可以通过在其创建的cookie上设置HttpOnly标志来帮助缓解此问题,这表明该cookie在客户端上不可访问。
如果支持HttpOnly的浏览器检测到包含HttpOnly标志的cookie,并且客户端脚本代码尝试读取该cookie,则浏览器将返回一个空字符串作为结果。这会通过阻止恶意代码(通常是XSS)将数据发送到攻击者的网站来使攻击失败。
java服务器设置HttpOnly
自从采用Java Servlet 3.0之上的容器,很容易在cookie上设置HttpOnly标志。实际上,setHttpOnly和isHttpOnly方法可在Cookie接口中使用,如下
Cookie cookie = getMyCookie("myCookieName");
cookie.setHttpOnly(true);
在WEB-INF/web.xml的设置如下
true
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
下一篇
已是最新文章