Java .policy 文件 - 如何防止 java.util.Date() 被访问

标签 java security jakarta-ee

我正在摆弄 java .policy 文件,并想知道如何做一些事情,例如阻止调用 java.util.Date() 等。

我只是想更好地了解 .policy 文件的工作原理以及如何将其用于沙箱代码。

最佳答案

恐怕你会不走运。

正如 Paŭlo Ebermann 所说,package.access可以阻止包层次结构。您可以通过自定义 SecurityManager 对此进行更精确的说明。 ,这通常是一个非常好的迹象,表明您正在做一些非常狡猾的事情。

一般来说你可以做一个ClassLoader它并不总是委托(delegate)给其父级。从技术上讲,不符合当前的 Java SE 规范,尽管 Java EE 规范鼓励这样做。你可以屏蔽java.util.Date 。如果任何其他类引用它,仍然可以通过反射访问它,或者您可以获得它的实例。您可以阻止 Date 的使用的传递闭包,包括以某种方式返回 Date 的那些。但是,要在最短日期内完成该计划,您必须加载 java.util.Date在您的类加载器中,您不能将其与所有其他java.*一起使用类。

所以,错误,替换 java.util.Date rt.jar 中的类(可能使用 Java 代理),并替换为您不想限制的任何类 new Date()new Date(System.currentTimeMillis()) .

(顺便说一句,+1 到任何减少对 System.currentTimeMillis() 和其他魔术方法的依赖的东西。)

关于Java .policy 文件 - 如何防止 java.util.Date() 被访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083619/

相关文章:

java - 使用多线程处理两个 Map

java - tomcat 中的 HttpServletRequestWrapper 和 Filter 生命周期

node.js - Sqlite 如何对值进行转义以防止 SQL 注入(inject)

python-3.x - 使用 Python 在桌面应用程序中安全分发 OAuth 2.0 client_secret

c++ - 函数的向后兼容性和安全版本

java - 所有字符都相同的最大字符串的计数和起始索引

java - 在 GWT 应用程序中捕获 ctrl-z(撤消)和 ctrl-y(重做)

java - 在 Java 中混合使用 String 和 int

具有不同扩展名的 Java 属性文件

java - 如何跳过 Liferay 布局中的默认语言环境