Cookie中的HttpOnly详解

Posted grefr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie中的HttpOnly详解相关的知识,希望对你有一定的参考价值。

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt377

 

1.什么是HttpOnly?

 

如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索

2.javaEE的API是否支持?

 

目前sun公司还没有公布相关的API,但php、C#均有实现。搞javaEE的兄弟们比较郁闷了,别急下文有变通实现

 

3.HttpOnly的设置样例

 

javaEE

 

1
2
response.setHeader("Set-Cookie", "cookiename=value;
Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");

 

 

 

 

具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取

 

1
Cookie cookies[]=request.getCookies();

C#

 

1
2
3
HttpCookie myCookie = new HttpCookie("myCookie");  
myCookie.HttpOnly = true;  
Response.AppendCookie(myCookie);

 

VB.NET

 

1
2
3
Dim myCookie As HttpCookie = new HttpCookie("myCookie")  
myCookie.HttpOnly = True  
Response.AppendCookie(myCookie)

 

   但是在 .NET 1.1 ,中您需要手动添加

 

1
Response.Cookies[cookie].Path += ";HTTPOnly";

 

PHP4

 

1
header("Set-Cookie: hidden=value; httpOnly");

 

 

PHP5

 

1
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);

 

    最后一个参数为HttpOnly属性

以上是关于Cookie中的HttpOnly详解的主要内容,如果未能解决你的问题,请参考以下文章

HostOnly Cookie和HttpOnly Cookie

在 .net core api 中存储/验证存储在 HttpOnly cookie 中的 JWT 令牌

如何使用存储在HttpOnly Cookie中的令牌注销

Tomcat为Cookie设置HttpOnly属性

SessionAuthenticationModule Cookie 处理程序未创建 HttpOnly 安全 cookie

基于反应和节点 js 的应用程序中的 httponly cookie