安全检测:会话cookie中缺少HttpOnly属性

安全测试时,有时会检查出检测到会话cookie中缺少HttpOnly属性;
刚开始听到,就觉得怎么HttpOnly怎么这么耳熟,想了想,cookie中缺少HttpOnly,别人就可以进行XSS攻击,就是跨站脚本攻击,然后了?也许我看过,但我又给忘,好气啊,学艺不精,菜的真实,赶紧百度一下,这次记录一下,等等,貌似我以前有篇博客里有提到HttpOnly,我靠,突然嫌弃自己。

什么是HttpOnly?

Jordan Wiens的博客《No cookie for you!》里有写,HttpOnly是Set-Cookie HTTP响应头中包含的附加标志。生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险;当然,前提是要浏览器兼容;
1、浏览器兼容HttpOnly标志;
2、HTTP响应头中包含HttpOnly标志;也就是cookie中设置了HttpOnly属性;
那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性。

如果浏览器不支持HttpOnly并且网站尝试设置HttpOnly cookie,浏览器会忽略HttpOnly标志,从而创建一个传统的,脚本可访问的cookie。

什么是XSS攻击?

XSS全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

大多数XSS攻击的目的都是盗窃cookie。服务端可以通过在它创建的cookie上设置HttpOnly标志来缓解这个问题,指出不应在客户端上访问cookie。

客户端脚本代码尝试读取包含HttpOnly标志的cookie,如果浏览器支持HttpOnly,则返回一个空字符串作为结

你可能感兴趣的:(JavaWeb,web安全)