Tomcat 修改Cookies安全性

版权声明:最终解释权归属Hern、HernSong(hernsong)、苍鹭、www.hernsong.com所有! https://blog.csdn.net/qq_36761831/article/details/89414662

修改方法

1、进入Tomcat的conf文件夹,打开context.xml文件

2、 将其中的<Context>标签属性更改为<Context useHttpOnly="true">:

Cookie常用属性

  1. Cookie名称,Cookie名称必须使用只能用在URL中的字符,一般用字母及数字,不能包含特殊字符,如有特殊字符想要转码。如js操作cookie的时候可以使用escape()对名称转码。
  2. Cookie值,Cookie值同理Cookie的名称,可以进行转码和加密。
  3. Expires,过期日期,一个GMT格式的时间,当过了这个日期之后,浏览器会将这个Cookie删除掉,当不设置这个的时候,Cookie在浏览器关闭后消失。
  4. Path,一个路径,在这个路径下面的页面才可以访问该Cookie,一般设为“/”,以表示同一个站点的所有页面都可以访问这个Cookie。
  5. Domain,子域,指定在该子域下才可以访问Cookie,例如要让Cookie在a.test.com下可以访问,但在b.test.com下不能访问,则可将domain设置成a.test.com。
  6. Secure,安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure(没有值),则只有当使用https协议连接时cookie才可以被页面访问。
  7. HttpOnly,如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息。

 HTTPONLY

1、为了解决XSS(跨站脚本攻击)的问题,IE6开始支持cookie的HttpOnly属性,这个属性目前已被大多数浏览器(IE、FF、Chrome、Safari)所支持。当cookie中的HttpOnly属性被设置为true时(最后第7位),前端脚本就无法访问或操作cookie了(只能通过后台访问),这样XSS就失效了。 HttpOnly会话cookie支持的浏览器,将仅用于发送HTTP(或HTTPS)请求时,从而限制从其他非HTTP的API(如JavaScript)访问。减轻此限制,但会议通过跨站点脚本(XSS)的cookie盗窃的威胁并没有消除。此功能仅适用于会话管理的cookie,而不是其他的浏览器的cookies。

2、httponly作用只是限制从其他非HTTP的API(如JavaScript)访问,cookie还是有可能传递的过程中被监听捕获后信息泄漏。

3、将 HttpOnly 属性设置为 true,并不能防止对网络频道具有访问权限的攻击者直接访问该 Cookie。针对这种情况,应考虑使用安全套接字层 (SSL) 来提供帮助。工作站的安全也很重要,原因是恶意用户可能使用打开的浏览器窗口或包含持久性 Cookie 的计算机,以合法用户的标识获取对网站的访问。

总结

增加 cookie 安全性添加HttpOnly和secure属性

(1)HttpOnly属性:如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。

(2)secure属性:当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被盗取到Cookie 的具体内容。

对于以上两个属性,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏。 6号位true。HttpOnly属性的目的是防止程序获取cookie后进行攻击。7号位true。

注意:为了降低XSS跨站点脚本攻击带来的损害,通常需要将HTTP-only Cookie和其他技术组合使用。如果单独使用的话,它无法全面抵御跨站点脚本攻击。

猜你喜欢

转载自blog.csdn.net/qq_36761831/article/details/89414662