java—是什么阻止某人通过假装自己不是模块来破坏合格的导出?

bvjxkvbb  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(284)

鉴于:

module A
{
  exports fuzzy.bunny to B;
}

什么可以防止恶意玩家伪装成模块 B 以便进入模块 A 谁的秘密?
我知道java中有某种签名机制 META-INF 这允许每个模块确保自己的类文件没有被修改,但是什么机制确保一个模块可以信任另一个模块的类文件呢?

ujv3wf0j

ujv3wf0j1#

可能不是您想要的答案,而是使用jmod创建文件的一部分 jmod 工具简要说明:

--hash-modules

--hash-modules 选项或 jmod hash 命令,您可以在每个模块的描述符中记录允许依赖它的模块内容的哈希值,从而将这些模块“绑定”在一起。这允许您允许将包导出到一个或多个特定命名的模块,而不通过限定的导出导出到其他模块。运行时验证记录的模块哈希是否与运行时解析的哈希匹配;否则,运行时将返回一个错误。
在同一文件的基础上
这些散列记录在正在创建的jmod归档文件中,或者记录在jmod归档文件或模块化jar中,该模块路径由 jmod hash 命令。
有用:上面共享的链接中也有一个哈希示例,它描述了一个与您的问题非常相关的用例。

相关问题