gpt4 book ai didi

java - 是否可以强制 JVM 检查每个 jar 都必须签名?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:10 24 4
gpt4 key购买 nike

是否可以强制 JVM 检查类加载器上加载的每个 JAR 是否都已签名?

我期望的行为是:如果签名错误或jar文件未签名,JVM崩溃,否则程序运行顺利。

最佳答案

这当然是可能的(毕竟 security is a central tenant of Java's design philosophy),但通常 Java 会延迟处理此类问题,而不是在 JVM 启动时处理。

generally recommended strategy是安装一个安全管理器,以防止任何不受信任的代码(信任由与安全管理器关联的 policy file 定义)访问操作系统或 JVM 的关键部分。然而,此类不受信任的代码仍然可以在 JVM 沙箱中运行,并且在不受信任的代码尝试突破沙箱之前,您的应用程序不会崩溃。通常,这被视为一项功能。

如果您确实需要在运行时验证所有 Jar 都已签名,您可以检查类路径以获取所有正在加载的 Jar 并检查它们的内容以验证它们是否已签名。 This answer提供了详细说明如何执行此操作的示例代码。

然而,更好的做法是一开始就避免使用不受信任的代码启动 JVM,这就是 jarsigner 的位置。应用程序进来。在将任何 Jar 文件添加到您的类路径之前,请使用 jarsigner 验证它们,您可以确信您的 JVM 仅运行受信任的代码。 JVM 启动后,您的选择将更加有限,因此最好的做法是仅在您对安全策略或正在加载的类有信心时才启动 JVM。

关于java - 是否可以强制 JVM 检查每个 jar 都必须签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34641305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com