当你在cookie上设置 HttpOnly 标识后,浏览器就会知会到这是特殊的cookie,只能由服务器检索到,所有来自客户端脚本的访问都会被禁止。当然也有前提:使用新版的浏览器。
HttpOnly Cookie 最初由 Microsoft’s Internet Explorer 6 SP1引入,至今为止,已是设置会话cookie的最佳实践了。
其语法如下:
在上面的HTTP请求头中, HttpOnly 知会浏览器在保存cookie,但不要向客户端脚本开放访问权限。
另外还有一个安全标识可以强制浏览器发送cookie的时候采用安全通道,比如 HTTPS ,可以防止被监听。尤其是在HTTPS连接被一些工具(比如SSLStrip等)降级到HTTP。
该语法为:
在这个HTTP头信息中, Secure 标识知会浏览器使用安全的加密通道发送cookie。
原文: https://latesthackingnews.com/2017/07/03/what-is-httponly-cookie/
利用HttpResponse的addHeader方法,设置Set-Cookie的值,
cookie字符串的格式:key=valueExpires=datePath=pathDomain=domainSecureHttpOnly
//设置cookie
response.addHeader("Set-Cookie", "uid=112Path=/HttpOnly")
//设置多个cookie
response.addHeader("Set-Cookie", "uid=112Path=/HttpOnly")
response.addHeader("Set-Cookie", "timeout=30Path=/testHttpOnly")
//设置https的cookie
response.addHeader("Set-Cookie", "uid=112Path=/SecureHttpOnly")
在实际使用中,我们可以使FireCookie查看我们设置的Cookie 是否是HttpOnly。
什么是HttpOnly
如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。
用HTTP-only Cookie保护数据
为了缓解跨站点脚本攻击带来的信息泄露风险,Internet Explorer 6 SP1为Cookie引入了一个新属性。这个属性规定,不许通过脚本访问cookie。使用HTTP-only Cookie后,Web 站点就能排除cookie中的敏感信息被发送给黑客的计算机或者使用脚本的Web站点的可能性。
日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
会话Cookie中缺少HttpOnly属性
Cookie的HttpOnly设定是由微软IE6时实现的,当前已成为标准,这个限定能有效限定Cookie劫持、限定客户端修改携带httpOnly属性的cookie键值对。同时由于它的安全限定较高,有一些业务在增加上该限定后无法有效获取到Cookie,因此在使用时还是需要根据业务场景进行使用。
gin框架下设置cookie的HttpOnly,第七个参数设置为true:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)