我的天!今天由我来给大家分享一些关于非敏感数据序列化不用加密〖什么是protobuf序列化协议〗方面的知识吧、
1、Protobuf序列化协议是谷歌推出的一种轻量级、高效的结构化数据序列化框架。其主要特点和优势如下:核心目的:将复杂的数据结构序列化为字节流,便于在不同语言和平台间传输和存储。支持语言:支持多种编程语言,如C++、Java、Python、PHP、Go等,通过编译proto文件生成对应的语言版本,实现跨语言数据互解。
2、Protobuf是一种高效的二进制序列化协议,特别适用于分布式系统中的数据传输和存储。以下是Protobuf的主要特点和应用优势:效率和性能:Protobuf采用二进制格式存储数据,相较于XML、JSON等文本格式,具有更小的数据体积和更快的序列化/反序列化速度。
3、Protobuf是Google开发的二进制数据交换格式,用于不同服务间的高效数据交换。它以二进制形式存储数据,结构化、语言无关、平台无关,适用于通讯协议、数据存储等领域。
测试结果显示,加了自定义注解的字段均被正确脱敏,未加注解的字段则保持原始状态。总结而言,Hutool通过DesensitizedUtil提供的方法,结合自定义注解和序列化类,实现了灵活的数据脱敏功能,为开发者提供了高效、安全的数据处理工具。
整体思路是通过替换手段进行脱敏,并结合框架特性,如MyBatis拦截器机制或JSON序列化,以实现高效和自动化脱敏。首先,定义一个脱敏工具类,可以使用如Hutool这样的库来简化实现,尤其是对于其在特定版本后提供的脱敏功能。当然,如果需要定制化功能,也可以自行构建一个符合需求的工具类。
利用Hutool的StrUtil.hide方法,可以通过一行代码实现数据脱敏,例如对手机号、银行卡号进行替换。在大量前端展示场景下,Hutool也支持通过Jackson注解的方式进行数据脱敏,只需定义脱敏策略、自定义序列化类并加入到SpringBoot项目中,即可轻松实现数据的自动脱敏处理。
为配合自定义注解使用,应构建一个枚举类,用于定义脱敏规则的类型。例如,`SensitiveRule`枚举类中包含`Mask`、`Hash`等具体脱敏策略。
前端数据脱敏处理:使用hutool提供的SM4加密工具:在数据返回前端之前,利用hutool工具对数据进行脱敏处理,确保敏感信息不被泄露。ValueConverter实现脱敏:通过自定义ValueConverter,在数据从数据库传递到前端时,自动对数据进行脱敏操作,保护用户隐私。
为了进一步提升数据安全性,本文还探讨了如何自定义数据库片段函数来支持加密列的检索,并介绍了在返回VO对象时如何实现数据脱敏。此外,还提供了SM4加密的实现方法,使用hutool工具包来简化加密策略的编写和应用。
shiro-550主要是由shiro的rememberMe内容反序列化导致的命令执行漏洞,造成的原因是默认加密密钥是硬编码在shiro源码中,任何有权访问源代码的人都可以知道默认加密密钥。
攻击者可以利用URLDNS链等恶意payload,通过一系列转换,最终触发DNS解析请求,以此作为漏洞存在的判断依据。进一步地,可以构造CC链,用于执行更复杂的攻击,如反弹shell等。Shiro反序列化漏洞复现环境搭建:使用vulhub提供的Shiro环境,搭建一个易受攻击的测试系统。
要进行Shiro反序列化漏洞的探究,首先需要搭建一个vulhub提供的Shiro环境,通过访问8080端口进行测试确认。Shiro是个开源的安全框架,核心功能包括身份验证、授权和会话管理。当我们尝试登录并勾选Rememberme选项,Burp抓包会发现响应包中的set-cookie字段包含rememberMe。
利用URLDNS链进行漏洞利用。通过生成URLDNS链,使用ysoserial工具创建payload(例如:`$java-jarysoserialURLDNSxxx.dnslog.cntxt`)。编写脚本加密编码payload,并移除JSESSIONID(当存在时),修改rememberMe为加密后的值。发送请求至目标网站,通过查看dnslog验证是否成功发送请求,证明漏洞存在。
原因分析:ApacheShiro的默认配置使用了CookieRememberMeManager,处理cookie流程包括Base64解码、AES解密以及反序列化。问题在于AES密钥硬编码,使攻击者能构造恶意数据,导致反序列化的RCE漏洞。
RuoYiv2Shiro反序列化漏洞的解答如下:漏洞定义:RuoYiv2中的ApacheShiro框架的记住我功能存在反序列化漏洞。该漏洞允许攻击者通过提交恶意字节序列,在反序列化过程中执行任意代码或命令,进而获得系统控制权限或操作系统权限。
分享到这结束了,希望上面分享对大家有所帮助