Java 如何处理作为输入参数出现的易受攻击的代码?
How does Java handle vulnerable code coming as input arguments?
当作为用户输入传递时,jvm 如何处理 'System.exit()' 等易受攻击的代码?
Java 没有像 Java 脚本中的 eval()
那样的功能,用于即时执行 Java 代码。
加载代码只有两种可选方式:
- 如果应用允许从用户定义的文件(例如使用 ClassLoader)加载编译代码(Java classes)
- 如果应用程序使用
ObjectInputStream
反序列化数据(以及相应的 class 字节码,其中包含)。
这两种方式都容易受到恶意代码的攻击,因此加载的代码可以执行任何操作。
Java 提供的唯一方法是安全管理器 - 主要用于 Java 小程序。但是,恕我直言,这种方式已经过时,因为总有一种方法可以绕过安全管理器的限制。 Java 小程序如今已过时的主要原因之一。
当作为用户输入传递时,jvm 如何处理 'System.exit()' 等易受攻击的代码?
Java 没有像 Java 脚本中的 eval()
那样的功能,用于即时执行 Java 代码。
加载代码只有两种可选方式:
- 如果应用允许从用户定义的文件(例如使用 ClassLoader)加载编译代码(Java classes)
- 如果应用程序使用
ObjectInputStream
反序列化数据(以及相应的 class 字节码,其中包含)。
这两种方式都容易受到恶意代码的攻击,因此加载的代码可以执行任何操作。
Java 提供的唯一方法是安全管理器 - 主要用于 Java 小程序。但是,恕我直言,这种方式已经过时,因为总有一种方法可以绕过安全管理器的限制。 Java 小程序如今已过时的主要原因之一。