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了,这样安全问题就解决了!

原文地址:https://www.cnblogs.com/firstdream/p/8302114.html

时间: 2024-10-06 18:13:34

Servlet 2.5为cookie配置HTTPOnly属性的相关文章

cookie 设置 httpOnly属性

cookie 设置 httpOnly属性防止js读取cookie. 建立filter拦截器类 CookieHttpOnlyFilter import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.serv

PHP设置COOKIE的HttpOnly属性

httponly是微软对cookie做的扩展.这个主要是解决用户的cookie可能被盗用的问题.    大家都知道,当我们去邮箱或者论坛登陆后,服务器会写一些cookie到我们的浏览器,当下次再访问其他页面时,由于浏览器回自动传递cookie,这样 就实现了一次登陆就可以看到所有需要登陆后才能看到的内容.也就是说,实质上,所有的登陆状态这些都是建立在cookie上的!假设我们登陆后的 cookie被人获得,那就会有暴露个人信息的危险!当然,想想,其他人怎么可以获得客户的cookie?那必然是有不

cookie设置httponly属性防护XSS攻击

攻击者利用XSS漏洞获取cookie或者session劫持,如果这里面包含了大量敏感信息(身份信息,管理员信息)等,攻击这里用获取的COOKIE登陆账号,并进行非法操作. COOKIE设置httponly属性可以化解XSS漏洞攻击带来的窃取cookie的危害. PHP中COOKIE设置方法: <?php setcookie("xsstest", "xsstest", time()+3600, "/", "", false

会话cookie中缺少HttpOnly属性 解决

只需要写一个过滤器即可 1 package com.neusoft.streamone.framework.security.filter; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException;

Session Cookie的HttpOnly和secure属性

Session Cookie的HttpOnly和secure属性 一.属性说明: 1 secure属性 当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容. 2 HttpOnly属性 如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本.Applet等)将无法读取到Cookie信息,这样能有效

cookie的secure、httponly属性设置

cookie的secure.httponly属性设置 转载自:http://www.cnblogs.com/alanzyy/archive/2011/10/14/2212484.html 一.属性说明: 1 secure属性 当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容. 2 HttpOnly属性 如果在Cookie中

Cookie设置HttpOnly,Secure,Expire属性

在eclipese中创建Web工程时,有个dynamic web module version选项,首先解释下这个选项的意思: http://stackoverflow.com/questions/3985916/dynamic-web-module-option-in-eclipse That version correlates with Servlet API version. Servlet 3.0 (released at december 2009 as part of Java E

Java Servlet 2.5 设置 cookie httponly

Servlet 3.0 有 cookie.setHttpOnly(true); 多么人性化, Servlet 2.5 是没有这个方法的要这个曲线救国:cookie.setPath("; HttpOnly;"); thanks to :http://stackoverflow.com/questions/13147113/setting-an-httponly-cookie-with-javax-servlet-2-5

浅谈HTTP Cookie 的 Secure 和 HTTPONLY属性

最近工作中遇到了关于cookie的secure及httponly属性的问题,所以关注并学习了一段时间,这里做一下简要记录.关于secure和httponly标志的用途可以参考wikipedia. 起因:系统PHP升级(5.1.7->5.4.5)并要求在下个升级后更新/etc/php.ini下的两个变量,设定值为1. Session.cookie_secure=1 Session.cookie_httponly=1 由此引发了这次调查,调查的内容涉及到了php自身cookie函数.开源框架Code