HttpOnly的设置样例
javaEE
1 response.setHeader("Set-Cookie", "cookiename=value
2 Path=/Domain=domainvalueMax-Age=secondsHTTPOnly")
具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取
1 Cookie cookies[]=request.getCookies()
C#
1 HttpCookie myCookie = new HttpCookie("myCookie")
2 myCookie.HttpOnly = true
3 Response.AppendCookie(myCookie)
VB.NET
1 Dim myCookie As HttpCookie = new HttpCookie("myCookie")
2 myCookie.HttpOnly = True
3 Response.AppendCookie(myCookie)
但是在.NET 1.1 ,中您需要手动添加
1 Response.Cookies[cookie].Path += "HTTPOnly"
PHP4
1 header("Set-Cookie: hidden=valuehttpOnly")
PHP5
1 setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE)
最后一个参数为HttpOnly属性
Response.Cookies[cookie].Path += "HTTPOnly"Response.Cookies("firstname").Secure ="true"
试一下
方法/步骤1首先找负责服务器配置的同事帮忙看了下,『启用cookie』 选项是开着的,而且服务器端能看到cookie信息,但是客户端就是访问不到(同样的客户端IE在tomcat容器的情况下是可以正常访问的,说明是was的问题)
2经过负责服务器配置的同事百般寻找,问题终于找到了,是由于was默认开启HttpOnly 的模式,这种模式下 在浏览器的 document对象中就看不到Cookie了,而浏览器在浏览的时候不受任何影响,因为Cookie会被放在浏览器头中发送出去(包括ajax)。
3有两种模式:Secure和HttpOnly。
4Secure属性: 当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。
5HttpOnly属性: 如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)