Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;缺少SecurityManager检查:可序列化";:强化源分析器_Java_Fortify - Fatal编程技术网

Java &引用;缺少SecurityManager检查:可序列化";:强化源分析器

Java &引用;缺少SecurityManager检查:可序列化";:强化源分析器,java,fortify,Java,Fortify,我在我的类的Fortify SourceAnalyzer中看到下面的警告,它实现了ISerializer,IDeSerializer接口:- “缺少SecurityManager检查:可序列化” 这是一个安全漏洞,因为如果您正在序列化某些敏感数据,并且已将security manager check放入类的构造函数中,以避免未经检查创建新的对象实例。您必须重写write方法,并在write方法中加入相同的安全管理器检查。(因为有些人仍然可以从序列化字节创建一个新实例,因为java无法控制从序列化

我在我的类的Fortify SourceAnalyzer中看到下面的警告,它实现了
ISerializer
IDeSerializer
接口:-

“缺少SecurityManager检查:可序列化”

这是一个安全漏洞,因为如果您正在序列化某些敏感数据,并且已将security manager check放入类的构造函数中,以避免未经检查创建新的对象实例。您必须重写write方法,并在write方法中加入相同的安全管理器检查。(因为有些人仍然可以从序列化字节创建一个新实例,因为java无法控制从序列化字节创建的对象,它将简单地反序列化这些字节,所以唯一可以避免的方法是在write方法中加入相同的安全管理器检查)

如果我序列化了一些敏感数据,并且在构造函数中进行了安全管理检查,那么上面的解释是非常好的。但是,如果我有不敏感的数据,并且我希望在没有任何安全管理器检查构造函数的情况下序列化这些数据。但我还是从强化报告中得到了上述警告。我不知道如何摆脱这个警告,这是一个错误的强化工具还是我遗漏了什么


注意:-我不希望任何安全经理检查我的构造函数

我从Fortify得到的解释有些不同,因为这个问题通常不是指
,而是指
(反序列化)。背景是,在反序列化数据时不会调用构造函数,因为运行时负责将序列化数据中的成员序列化,因此当构造函数中有
SecurityManager
时,在通过反序列化创建实例时不会考虑它

无论如何,对于您的问题,如果您分析了问题并得出结论认为它不是问题,那么您可以在审核问题时将其标记为问题。这在强化SSC(中央强化服务器)和审计工作台(AWB)中都是可能的。在加强SSC中,转到您的问题列表,选择特定问题的“查看详细信息”,并在左下角选择“分析:非问题”。AWB中也存在类似的选项


如果您正在执行后续扫描并将其上载到服务器(或使用AWB合并),则Fortify会识别此问题已在前面审核并标记为“非问题”,并保留“非问题”信息。

此查找的规则ID(GUID)是什么?也可以在:-上找到类似信息,正确。Fortify刚刚匹配了一个可能不适用于您的案例的模式。Fortify无法知道您的数据是否敏感,因此必须假定它是敏感的。