gpt4 book ai didi

Java : prevent System. 退出、文件访问等...用于用户定义的表达式

转载 作者:行者123 更新时间:2023-12-03 07:11:21 28 4
gpt4 key购买 nike

在我们的应用程序中,用户能够定义由我们的主引擎执行的 Java 表达式(这些表达式仅是方法调用:例如 Math.abs(42) )。它们是通过反射执行的。

有哪些不同的解决方案可以防止这些表达式直接或通过最终将在内部调用 System.exit 的方法调用调用例如 System.exit (以及文件访问和其他...)?

请注意,多个不同的表达式可以在不同的线程中执行。例如,使用 SecurityManager 阻止文件访问不起作用,因为在执行表达式时主引擎仍然必须能够访问文件系统。

最佳答案

你说不能使用SecurityManager是错误的——这正是它的用途:托管不受信任的代码,就像在Applet容器或RMI服务器中一样。现代SecurityManager配置有策略文件,这些策略文件授予特定的、细粒度的权限,包括对文件系统的有限访问。您需要使用SecurityManager,但您需要成为它的专家。

这是一个巨大的话题;最好的办法是搜索“Java 安全策略文件”并阅读您能阅读的所有内容。

关于Java : prevent System. 退出、文件访问等...用于用户定义的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775985/

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