HttpOnly Cookies是一个cookie安全行的解决方案。

在支持HttpOnly cookies的浏览器中(IE6+,FF3.0+),如果在Cookie中设置了"HttpOnly"属性,那么通过JavaScript脚本将无法读取到Cookie信息,这样能有效的防止XSS攻击,让网站应用更加安全。

但是J2EE4,J2EE5 的Cookie并没有提供设置 HttpOnly 属性的方法,所以如果需要设置HttpOnly属性需要自己来处理。

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServletResponse;

public class CookieUtil {

/**

* 设置HttpOnly Cookie

* @param response HTTP响应

* @param cookie Cookie对象

* @param isHTTPOnly 是否为HttpOnly

*/

public static void addCookie(HttpServletResponse response, Cookie cookie, boolean isHttpOnly) {

String name = cookie.getName();//Cookie名称

String value = cookie.getValue();//Cookie值

int maxAge = cookie.getMaxAge();//最大生存时间(毫秒,0代表删除,-1代表与浏览器会话一致)

String path = cookie.getPath();//路径

String domain = cookie.getDomain();//域

boolean isSecure = cookie.getSecure();//是否为安全协议信息

StringBuilder buffer = new StringBuilder();

buffer.append(name).append("=").append(value).append(";");

if (maxAge == 0) {

buffer.append("Expires=Thu Jan 01 08:00:00 CST 1970;");

} else if (maxAge > 0) {

buffer.append("Max-Age=").append(maxAge).append(";");

}

if (domain != null) {

buffer.append("domain=").append(domain).append(";");

}

if (path != null) {

buffer.append("path=").append(path).append(";");

}

if (isSecure) {

buffer.append("secure;");

}

if (isHttpOnly) {

buffer.append("HTTPOnly;");

}

response.addHeader("Set-Cookie", buffer.toString());

}

}

值得一提的是,Java EE 6.0 中 Cookie已经可以设置HttpOnly了,所以如果是兼容 Java EE 6.0 的容器(例如如 Tomcat 7),可以直接使用Cookie.setHttpOnly 的方法来设置HttpOnly:

cookie.setHttpOnly(true);

java中的hwid验证,JAVA设置HttpOnly Cookies相关推荐

  1. 如何在Java中针对XSD验证XML

    Java XML Validation API can be used to validate XML against XSD in java program. javax.xml.validatio ...

  2. Java 中的 XML:Java 文档模型的用法

    Java 中的 XML:Java 文档模型的用法 英文原文 内容: 代码对比 DOM JDOM dom4j Electric XML XPP 结束语 下一次... 参考资料 关于作者 对本文的评价 相 ...

  3. java 泛型详解、Java中的泛型方法、 java泛型详解

    本文参考java 泛型详解.Java中的泛型方法. java泛型详解 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即& ...

  4. 在java中使用JMH(Java Microbenchmark Harness)做性能测试

    文章目录 使用JMH做性能测试 BenchmarkMode Fork和Warmup State和Scope 在java中使用JMH(Java Microbenchmark Harness)做性能测试 ...

  5. java中函数的调用,java中如何调用函数

    java动态调用函数,Java 中使用动态代码,java函数调用,java中如何调用函数 如何在 Java 中调用 C 函数 宗薇 [期刊名称]<网络新媒体技术> [年(卷),期]2000 ...

  6. Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决

    Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决 参考文章: (1)Java中使用json时java.lan ...

  7. JAVA设置HttpOnly Cookies

    HttpOnly Cookies是一个cookie安全行的解决方案. 在支持HttpOnly cookies的浏览器中(IE6+,FF3.0+),如果在Cookie中设置了"HttpOnly ...

  8. java设置httponly_JAVA设置HttpOnly Cookies

    HttpOnly Cookies是一个cookie安全行的解决方案. 在支持HttpOnly cookies的浏览器中(IE6+,FF3.0+),如果在Cookie中设置了"HttpOnly ...

  9. java中的lombok_如何在Java中使用Lombok删除样板设置器吸气剂

    java中的lombok 你好朋友, 一次又一次反对Java的观点之一是,我们必须写很多样板 我们简单的POJO类的setter和getter形式的代码,不必要地增加了 我们代码的长度. 为了解决这个 ...

最新文章

  1. MariaDB 主从同步与热备(14)
  2. OpenCV的图像处理——iOS与OpenCV之间图像转换
  3. JavaScript学习代码整理(二)--函数
  4. BCB6代码格式化外挂
  5. 5G的7大用途,你知道几个?
  6. Linux下Nginx的安装和配置
  7. java新入手的三十个基本概念
  8. redhat下svn服务器搭建
  9. bzoj 1665: [Usaco2006 Open]The Climbing Wall 攀岩(最短路)
  10. 剑指offer——面试题42-1:左旋转字符串
  11. 解决My97DatePicker时间插件的input框,触发onchange时间要失去焦点时才触发
  12. 调和级数 java,再探π^2/6
  13. 利率交換 IRS 估值 (1) 前言
  14. 图卷积网络GRAPH CONVOLUTIONAL NETWORKS
  15. String 源码浅析————终结篇
  16. 常见的短信群发平台,短信群发平台分类
  17. P3332 [ZJOI2013]K大数查询 - 整体二分-区间修改
  18. 2020/7/17 积分不等式/反常积分/定积分应用
  19. 数据库数据迁移失败,如何进行修复操作
  20. 20150904看电影学英语

热门文章

  1. linux下C语言抓包程序,带图形界面
  2. 汉语未来或将成为最易掌握的语言
  3. 入驻快手小店需要什么条件?快手小店如何开通?
  4. 人脸识别客户端应用程序_如何在应用程序中使用功能识别设置人脸检测
  5. 金融信创虽风正时济,应对挑战该如何乘风破浪(一)
  6. 未来计算机的图片大全集,小学生未来的机器人儿童画图片大全
  7. 计算机毕业设计Java互联网校园家教兼职平台(源码+系统+mysql数据库+lw文档)
  8. openwrt控制天翼网关定时重启
  9. 华为服务器自检信息怎么开,hp服务器开机自检报错提示
  10. 【奥特曼迪迦表情包】