主要防止非法用户修改cookie信息,以及cookie的超时时间
传统cookie存储,Cookie(name, value),value很容易就被篡改。
防修改cookie存储,Cookie(name, value+“&&”+ signToken+“&&”+saveTime+“&&”+maxTime)
signToken :签名密钥 由md5(value+saveTime+maxTime+”自定义密钥“)生成
saveTime:cookie创建时间
maxTime:cookie超时时间

设置Cookie

public static void put(HttpServletResponse response, String key, String value, int maxTime) {
  String pwdKey = "white_yu"; //自定义密钥
  String saveTime = System.currentTimeMillis() + "";
  String signToken = md5(pwdKey, saveTime, maxTime + "", value);

  String cookieValue = signToken + "&&" + saveTime + "&&" + maxTime+ "&&" + value;

  Cookie cookie = new Cookie(key,cookieValue);
  cookie.setMaxAge(maxTime);
  response.addCookie(cookie);

}

获取Cookie

public static String getCookie(String cookieValue) {
  String pwdKey = "white_yu"; //自定义密钥
  if (StringUtils.isNotBlank(cookieValue)) {
    String cookieStrings[] = cookieValue.split("&&");
    if (null != cookieStrings && 4 == cookieStrings.length) {
      String signToken = cookieStrings[0];
      String saveTime = cookieStrings[1];
      String maxTime = cookieStrings[2];
      String value = cookieStrings[3];

      String sign = md5(pwdKey, saveTime, maxTime, value);

      // 保证 cookie 不被人为修改
      if (sign.equals(signToken)) {
        long stime = Long.parseLong(saveTime);
        long maxtime = Long.parseLong(maxTime) * 1000;
        // 查看是否过时
        if ((stime + maxtime) - System.currentTimeMillis() > 0) {
          return value;
        }
      }
    }
  }
  return null;
}

转载于:https://www.cnblogs.com/zhang0807/p/10275372.html

Cookie防伪造防修改相关推荐

  1. php cookie防伪造,技术分享:Cookie 防伪造 防修改

    原标题:技术分享:Cookie 防伪造 防修改 主要防止非法用户修改cookie信息,以及cookie的超时时间 传统cookie存储,Cookie(name, value),value很容易就被篡改 ...

  2. Java伪造cookie登录_Cookie防伪造防修改

    主要防止非法用户修改cookie信息,以及cookie的超时时间 传统cookie存储,Cookie(name, value),value很容易就被篡改. 防修改cookie存储,Cookie(nam ...

  3. ASP.NET MVC 使用防伪造令牌来避免CSRF攻击

    本文转自这篇文章 XSRF即在访问B站点的时候,执行了A站点的功能.  比如:  A站点登录后,可以修改用户的邮箱(接口:/Email/Modify?email=123),修改邮箱时只验证用户有没有登 ...

  4. 防红直连php,【源码资源】20新PHP网址缩短防封防红短网址生成系统

    [源码资源]20新PHP网址缩短防封防红短网址生成系统 源码描述: 注册用户可以绑定自己域名,用来做防封.支持直连.跳转.框架.密码访问等.不用购买大量域名来 做防封.支持自定义广告. 可以设置用户等 ...

  5. 防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之设备与楼栋单元设置

    防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之设备与楼栋单元设置的基本操作 CPU卡门禁一体机 1.运行软件 双击桌面的快捷图标:yk ...

  6. 防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之用户卡加密发卡设置说明

    防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之用户卡加密发卡设置说明 1.设置控制器的扇区和密码 本节说明主要介绍控制器和用户卡使用的 ...

  7. 防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之软件功能说明

    1.软件概述 防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00版可同时管理门禁系统和梯控系统,门禁系统设备有嵌入式.一体式.分体式,主要设置控制设 ...

  8. 网易云加密--Android安卓移动应用程序加密加壳保护方案防破解防逆向分析防游戏外挂

    网易云加密--Android安卓移动应用程序加密加壳保护方案防破解防逆向分析防游戏外挂 一.服务简介 网易云加密为网易公司旗下产品,致力于为移动应用程序提供专业保护方案,让加固变得更简单,一键搞定.目 ...

  9. php重放,Api 接口安全-防篡改,防重放理解总结

    防篡改 为什么要防篡改 http 是一种无状态的协议, 服务端并不知道客户端发送的请求是否合法, 也并不知道请求中的参数是否正确 举个栗子, 现在有个充值的接口, 调用给用户对应的余额 http:// ...

最新文章

  1. sklearn使用投票回归VotingRegressor算法构建多模型融合的投票回归模型、并自定义子回归器的权重(weights)、评估多模型融合的回归模型、评估R2、mse、rmse、mape
  2. 如何解决两个相邻的span中间空隙
  3. P5367 【模板】康托展开
  4. [转载]编译中的常见分析方法
  5. Java服务CPU飙到99%问题排查
  6. linux7设备的挂载,centos7磁盘分区与挂载解析
  7. matlab实现整数规划/01规划
  8. blob js 下载word乱码_这几个相见恨晚的PDF转换成Word技巧,请收好
  9. 菜鸟教程学习JAVA 01
  10. 安装VS之后,excel每次启动都会配置Visual Studio的解决办法
  11. cpu多开测试软件,游戏多开CPU优化工具
  12. java找不到符号 符号:类Xxx 位置xxx的解决方案
  13. 速成应用免费教你如何制作开发预约类型的美容美发行业微信小程序「教程」
  14. 研发团队建设的心得体会
  15. 反证法在计算机领域,人工智能的基础研究领域——问题求解、逻辑推理与定理证明...
  16. 认识一下netlogon服务
  17. 微信小程序-常用api
  18. Transactional Client
  19. 05.Laravel post提交失败 返419 | Page Expired
  20. 图灵机2:等价变形+算法定义

热门文章

  1. 对话李飞飞,展望阿里云与MongoDB战略合作未来
  2. 云原生架构应该怎么设计?
  3. 【云上技术】中大型规模企业如何部署多数据中心?
  4. 阿里云视频云编码优化的思考与发现
  5. 阿里云量产50家独角兽前夜
  6. 保持你的决心——《传说之下》背后的设计之道
  7. 砖家:游戏账号交易属违法行为 相关部门应严厉打击
  8. 搭载恩智浦i.MX 8M Plus处理器的核心板,它来了!
  9. final,finally,finaliz的区别(Java)
  10. 面试时发现公司有哪些行为或特征一定不能进?