热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpcookie防伪造,技术分享:Cookie防伪造防修改

原标题:技术分享:Cookie防伪造防修改主要防止非法用户修改cookie信息,以及cookie的超时时间传统cookie存储࿰

原标题:技术分享:COOKIE 防伪造 防修改

2475d14c3126e511fb27a60511cd4533.png

主要防止非法用户修改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;

责任编辑:



推荐阅读
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 通过优化模板消息机制,本研究提出了一种高效的信息化推送方案。该方案利用获取的访问令牌(access token)和指定的模板ID,实现了精准且快速的信息推送,显著提升了用户体验和信息传递效率。具体实现中,通过调用相关API接口,确保了消息的准确性和及时性,为用户提供更加便捷的服务。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 多线程基础概览
    本文探讨了多线程的起源及其在现代编程中的重要性。线程的引入是为了增强进程的稳定性,确保一个进程的崩溃不会影响其他进程。而进程的存在则是为了保障操作系统的稳定运行,防止单一应用程序的错误导致整个系统的崩溃。线程作为进程的逻辑单元,多个线程共享同一CPU,需要合理调度以避免资源竞争。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 微信平台通过盛派SDK(sdk.weixin.senparc.com)允许服务号和订阅号使用appId和token读取关注用户的个人信息。然而,这一过程需严格遵守隐私保护和数据安全的相关规定,确保用户数据的安全性和隐私性。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
author-avatar
夜月丶凉如诗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有