天天看点

一个保护使用JSON的Java应用程序的方法

JSON是用于在应用程序内共享对象和数据的标准格式。对于Java,不存在对JSON处理的内置支持,但是有几种广泛使用的库可供选择。在本文中,我们将重点介绍最受欢迎的Jackson。

保护使用Jackson进行JSON处理的应用程序时,请务必注意是否使用Java对象存储JSON数据(如使用数据绑定),或者是否在没有相应Java对象的情况下完全操纵JSON数据(如Jackson一样)树模型)。这会影响我们配置混淆设置的方式。

对于数据绑定Java对象(POJO),我们需要保留get和set方法以确保适当的运行时功能。另一方面,如果我们使用树模型来操作JSON数据(没有POJO),则无需任何自定义配置就可以应用混淆。请考虑以下内容。

此示例项目使用两种不同的方式对JSON格式的字符串进行序列化和反序列化。一种方法使用不支持POJO的Jackson树模型。第二种方法使用数据绑定将JSON数据存储为POJO。以下是预期的输出:

一个保护使用JSON的Java应用程序的方法

在对jar文件应用保护之后,请注意“树模型”示例可以正常运行,但是“数据绑定”示例将引发异常:

一个保护使用JSON的Java应用程序的方法

如果按照例外说明,如果我通过在POJO中添加@JsonInclude(Include.NON_NULL)批注来允许空bean,那么我仍然会在输出中得到空结果,这也是预期的行为。

一个保护使用JSON的Java应用程序的方法

为了防止这种情况,我需要从重命名中排除Car对象的get和set方法。

一个保护使用JSON的Java应用程序的方法

这样做之后,受保护的输出将正常运行。

说到PreEmptive,其名下两款实力派软件保护工具——Dotfuscator和DashO Pro。

Dotfuscator是一个.NET的Obfuscator。它提供企业级的应用程序保护,大大降低了盗版、知识产权盗窃和篡改的风险。Dotfuscator的分层混淆、加密、水印、自动失效、防调试、防篡改、报警和防御技术,为世界各地成千上万的应用程序提供保护。

DashO是一个Java和Android的混用程序,它提供企业级应用的加固和屏蔽,大大降低了知识产权盗窃、数据盗窃、盗版和篡改的风险。分层混淆,加密,水印,自动失效,反调试,反篡改,反仿真器,反挂钩,反根设备解决方案,为世界各地的应用程序提供保护。

下表突出显示了在过去20年中以各种形式包含在PreEmptive Protection产品Dotfuscator和DashO Pro的应用程序内保护模式,其客户已成功将其集成到几乎每个行业,地理和设备的应用程序中。

接受的模式 减少时间 最少的培训 简化的SDLC 平台支援 合规 性能与质量
邮政编码处理
IDE DevOps集成
更新了侦探控制
交钥匙侦探反应
以应用程序为中心的响应
100%标准混淆
自动检测框架
Wizards

PreEmptive已经提供了20多年的应用程序保护解决方案。RASP,模糊处理和屏蔽都是PreEmptive掌握并内置于即用型解决方案中的所有技术。100多个国家/地区的5000多家组织已经使用PreEmptive Protection产品来为其应用程序提供一层保护。

当然,你也可以阅读【防止代码被反编译的秘诀:9款强力保护工具任你选择】来挑选其他工具。