在这个帖子上,有人在评论中提到,将.:
添加到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
复制相似问题