HttpOnly的笔记
  s5EH7MiXPf4U 2023年12月31日 17 0

HttpOnly是什么

简单的说:

  • HttpOnly是Cookie的属性;
  • Web服务器通过为Cookie设置这个属性,告诉浏览器应当避免页面端的脚本访问对应Cookie的值,保证被Cookie承载的敏感信息不被恶意读取;
  • Web服务器可以保存一些用户的敏感数据到Cookie中,实现比如SSO的功能;
  • 当然是否安全,光靠Web服务器设置HttpOnly属性是没有用的,浏览器需要按要求支持这个属性,否则仍然存在安全问题。

为Cookie设置HttpOnly属性的语法如下。

Set-Cookie: <name>=<value>[; <name>=<value>]
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; HttpOnly]

如何设置

对于Tomcat 7.0.x以上的版本,可以在应用的web.xml文件中增加如下配置。

<session-config>
	<cookie-config>
		<http-only>true</http-only>
		<secure>true</secure> <!-- 启用HTTPS后,建议配置这行,仅在安全通道时传输Cookie,提升安全性 -->
	</cookie-config>
<session-config>

查阅Apache Tomcat官方Cookie类的文档,可以发现从7.0.x版本可以通过Cookie类对象的API来设置httpOnly属性。

/**
 * Sets the flag that controls if this cookie will be hidden from scripts on the client side.
 */	
setHttpOnly(boolean httpOnly)

如何判断HttpOnly是否生效

打开Chrome调试器的Resources面板,在左边选择Cookies,这时在右边可以看到Chrome缓存的cookie数据。

注意观察HTTP、Secure列:

  • 如果HTTP列有对勾,说明对应行的cookie设置了HttpOnly属性;
  • 如果Secure列有对勾,说明对应行的cookie设置了secure属性;

资料

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: CSS3入门 下一篇: 《绝密 543》观后感
  1. 分享:
最后一次编辑于 2023年12月31日 0

暂无评论

推荐阅读
  LY8MQrCFKM5K   2024年05月17日   42   0   0 Html/Css
  6KFl7ZJFjB7K   2024年04月15日   91   0   0 Html/Css
  yFRq1xYnAob9   2024年04月22日   61   0   0 Html/Css
  20HN9BpynbnX   2024年05月17日   38   0   0 Html/Css
  uCg8iP04yNRs   2024年05月08日   159   0   0 Html/Css
s5EH7MiXPf4U