Servlet 2.5为cookie配置HTTPOnly属性

Posted 有梦就能实现

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet 2.5为cookie配置HTTPOnly属性相关的知识,希望对你有一定的参考价值。

cookie的HTTPOnly属性,主要是用来防止javascript来读取cookie,默认情况下,JavaScript可以通过document.cookie来读取cookie,这样是很不安全的。通过配合XSS攻击,就可以达到盗取用户cookie的目的。这样的话,就可以在不知道用户密码的情况下,直接登陆用户的账号,现在很多网站都是使用coookie来保存用户名和密码信息的,非常不安全。

所以,出于安全考虑,我们最好是为cookie设置一下属性,让JS读取不到cookie,这样就会安全一些。Servlet 3.0一下,cookie的设置不支持HTTPOnly选项。我们可以通过其它的手段,来达到目的。

首先看一下没有为cookie设置HTTPOnly的情况,JS直接读取Cookie

技术分享图片

 

请求一下Servlet,然后发现确实没有HTTPOnly属性

技术分享图片

 

然后测试一下用JS访问Cookie

技术分享图片确实可以直接访问到Cookie信息,这样是非常不安全的,如果网站存在存储型或反射型的XSS漏洞,那么将会非常可怕,既然可以访问到cookie,那么肯定可以通过JS把cookie发送到一个地址,然后这个地址写一个页面接收JS发过来的请求,就拿到了用户的cookie!

下面我们开始为Cookie设置HTTPOnly属性

技术分享图片

先清空一下原来的cookie,然后再去请求一下看看

技术分享图片

我们看到HTTP一栏上面有一个对勾,然后我们再尝试使用JS访问一下Cookie

技术分享图片

JS已经访问不到Cookie了,这样安全问题就解决了!

以上是关于Servlet 2.5为cookie配置HTTPOnly属性的主要内容,如果未能解决你的问题,请参考以下文章

Java Servlet API 2.5 Cookie.getDomain() 总是返回 null

将会话 cookie 设置为 HttpOnly

iframe 内的 iframe 以访问自己的 cookie

如何使用 servlet 或配置文件本身将 samesite = strict 添加到 weblogic 服务器中的 JSESSIONID cookie?

控制Ktor 0.9.0 servlet中的cookie生命周期

servlet会话理解--cookie使用方法