我们当前使用LD_PRELOAD启用信号链接。我们之所以选择LD_PRELOAD,是因为我们不强迫客户使用特定的Java供应商或版本,也不希望通过为客户可能使用的各种Java供应商/版本创建唯一的构建来使构建过程复杂化。我们最近发现,使用LD_PRELOAD被安全分析工具(例如检查OWASP 2017的工具)视为代码注入风险。
是否有任何我们可能不考虑允许我们依赖JNI的产品符合OWASP的要求?还是有人知道将来是否有计划以新的或替代的方式解决此问题,以使JNI应用程序符合OWASP?与每个受支持的JVM链接的内部版本都可以工作,但是在5个平台上从1到9的内部版本(大约3个JDK供应商x 3个有效的JDK版本级别)肯定会增加我们的维护和测试周期。
答案 0 :(得分:0)
基于对OpenJDK社区的建议,我们更新了API的Java部分以执行
System.loadlibrary(“ jsig”);
在调用我们的JNI库之前。测试时达到了预期的效果;本机代码处理信号,Java程序成功完成。这适用于所有涉及的JDK和平台。