1.什么是HttpOnly?

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

2.javaEE的API是否支持?

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

3.HttpOnly的设置样例

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

具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取
Cookie cookies[]=request.getCookies();
C#
HttpCookie myCookie = new HttpCookie("myCookie");
myCookie.HttpOnly = true;
Response.AppendCookie(myCookie);

VB.NET
Dim myCookie As HttpCookie = new HttpCookie("myCookie")
myCookie.HttpOnly = True
Response.AppendCookie(myCookie)

但是在 .NET 1.1 ,中您需要手动添加
Response.Cookies[cookie].Path += ";HTTPOnly";

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

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

最后一个参数为HttpOnly属性

参考
http://www.owasp.org/index.php/HTTPOnly

转自:http://yzd.iteye.com/blog/787190

http://www.oschina.net/question/100267_65116

将cookie设置成HttpOnly是为了防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。

如何在Java中设置cookie是HttpOnly呢?
Servlet 2.5 API 不支持 cookie设置HttpOnly
http://docs.oracle.com/cd/E17802_01/products/products/servlet/2.5/docs/servlet-2_5-mr2/

建议升级Tomcat7.0,它已经实现了Servlet3.0
http://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/http/Cookie.html

但是苦逼的是现实是,老板是不会让你升级的。
那就介绍另外一种办法:
利用HttpResponse的addHeader方法,设置Set-Cookie的值
cookie字符串的格式:key=value; Expires=date; Path=path; Domain=domain; Secure; HttpOnly

//设置cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

//设置多个cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

response.addHeader("Set-Cookie", "timeout=30; Path=/test; HttpOnly");

//设置https的cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; Secure; HttpOnly");

在实际使用中,我们可以使FireCookie查看我们设置的Cookie 是否是HttpOnly

http://zhenghaoju700.blog.163.com/blog/static/13585951820138267195385/

最新文章

  1. 去除angularjs路由的显眼的#号
  2. [转] --- Error: “A field or property with the name was not found on the selected data source” get only on server
  3. .NET中Dictionary<TKey, TValue>浅析
  4. Csharp: Create Excel Workbook or word from a Template File using aspose.Word 14.5 and aspose.Cell 8.1
  5. iOS runtime 的经典作用
  6. javascript(脚本语言)
  7. MVVM架构的一次实践,重写iOS头条客户端
  8. 火狐解决 OCSP 回应包含过期信息的问题_firefox吧_百度贴吧
  9. 条件注释+JS实现各版本IE浏览器className
  10. BZOJ 2743: [HEOI2012]采花( 离线 + BIT )
  11. 快学scala-第七章 包和引入
  12. 初见 ThreadLocal 类
  13. Java基础教程1:环境配置及第一个HelloWorld.java
  14. 叼叼叼,HTML5日期(Date)类型和文本(Text)类型互相转换
  15. Beta冲刺合集
  16. visual studio 中被遗忘的任务列表和书签
  17. python安装代码包提示缺少 VC++ 14 控件的处理方式
  18. linux 的基本操作(linux系统的日常管理)
  19. UML之状态机图
  20. Necklace of Beads (polya定理的引用)

热门文章

  1. Winform将网页生成图片
  2. 关于C语言指针中的p++与p+i
  3. UNIX环境高级编程-环境配置
  4. makefile教程网址
  5. php protected只能被继承,不可以在实例中调用,parent::调用父类(子类函数的重载对父类的函数没有影响)
  6. 20145120 《Java程序设计》实验一实验报告
  7. WWDC 2016: Rich Notifications in iOS 10
  8. ETL Pentaho Data Integration (Kettle) 插入/更新 问题 etl
  9. SVN--VisualSVN server 服务端和 TortoiseSVN客户端的基础使用
  10. 输入一个链表,输出该链表中倒数第k个结点。