Java如何处理作为输入参数的易受攻击的代码



jvm如何在作为用户输入传递时处理像"System.exit(("这样的易受攻击的代码?

Java在JavaScript中没有像eval()那样的功能来动态执行Java代码。

只有两种加载代码的替代方法:

  1. 如果应用程序允许从用户定义的文件加载编译的代码(Java类((例如使用ClassLoader(
  2. 如果应用程序使用ObjectInputStream来反序列化数据(以及包含的对应类字节码(

这两种方式都容易受到恶意代码的攻击,因此加载的代码可以执行任何操作。

Java提供的唯一方法是安全管理器,它主要用于Java Applets。然而,这种方式已经过时了,因为总有一种方法可以绕过安全管理器的限制。Java小程序如今已经过时的主要原因之一。

最新更新