在这个帖子上,有人在评论中提到,将.:添加到PATH环境变量是一个安全漏洞。将.:添加到CLASSPATH环境变量也是一个安全漏洞吗?
发布于 2018-05-19 02:24:49
是的,这可能是一个安全漏洞。
将.:放在CLASSPATH的前面意味着Java在搜索其他CLASSPATH路径之前使用当前目录下的类。这意味着将使用当前目录或其子目录中的.class文件来代替任何类或接口。例如,如果文件./java/lang/String.class存在,它将被使用而不是标准的String类。
这意味着,如果您在运行Java程序时没有注意当前目录是什么,程序可能会加载恶意类来代替任何类。
为了避免每次运行Java程序时都要费力地检查当前目录,您不应该默认设置系统。
如果在运行特定的Java程序时要使用当前目录下的类,则通常应该跳过设置CLASSPATH并将-cp参数改为java,如下所示:
java -cp ".:…" …这完全避免了通过CLASSPATH环境变量影响其他Java程序。只有在您知道当前目录下的文件不是恶意文件时,才应该这样做。
https://askubuntu.com/questions/1037917
复制相似问题