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屬性