JEP 472:准备在JDK 24中限制JNI的使用

JEP 472:准备在JDK 24中限制JNI的使用

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

JEP 472提议限制将来的Java版本中JNI和FFM API的使用,以增强安全性和性能。该提议包括对JNI使用发出警告和调整FFM API。目标是要求开发人员对任何JNI和FFM API的使用进行明确批准。文章解释了JNI使用的风险,如内存损坏和绕过访问检查。提议建议采取分阶段的方法限制JNI的使用,并提供了启用本地访问的选项。文章还提到了一个新工具,jnativescan,用于帮助识别使用JNI的库。过渡到更严格的JNI限制可能需要进行调整,但将有助于构建更安全的Java生态系统。

🎯

关键要点

  • JEP 472提议限制未来Java版本中JNI和FFM API的使用,以增强安全性和性能。
  • 该提议要求开发人员在启动时对JNI和FFM API的使用进行明确批准。
  • JNI的使用存在风险,如内存损坏和绕过访问检查,可能影响Java平台的完整性。
  • 提议采取分阶段的方法限制JNI的使用,初期将对加载和链接本地库的操作发出警告。
  • 开发人员可以通过命令行选项--enable-native-access启用特定Java代码的本地访问。
  • 本地访问限制的影响可以通过--illegal-native-access选项进行控制,未来计划将默认行为设置为deny。
  • 长期目标是通过默认拒绝来加强安全措施,确保Java平台的完整性。
  • 新工具jnativescan将帮助识别使用JNI的库,促进开发人员的调整。
  • JEP 472标志着向更安全的Java平台迈出了重要一步,预计将带来显著的安全和完整性收益。

延伸问答

JEP 472的主要目标是什么?

JEP 472的主要目标是限制未来Java版本中JNI和FFM API的使用,以增强安全性和性能。

JNI使用存在哪些风险?

JNI使用的风险包括内存损坏和绕过访问检查,这可能影响Java平台的完整性。

开发人员如何启用特定Java代码的本地访问?

开发人员可以通过命令行选项--enable-native-access启用特定Java代码的本地访问。

JEP 472提议的限制措施是如何分阶段实施的?

JEP 472提议采取分阶段的方法,初期将对加载和链接本地库的操作发出警告。

如何控制本地访问限制的影响?

本地访问限制的影响可以通过--illegal-native-access选项进行控制,允许、警告或拒绝非法本地访问。

jnativescan工具的作用是什么?

jnativescan工具用于帮助识别使用JNI的库,促进开发人员的调整。

➡️

继续阅读