草庐IT

canonicalPath

全部标签

带有尾部 '.. ' 的 Java 文件 canonicalPath 导致不一致的行为

我目前正在研究一些与pathTraversal相关的安全机制,并遇到了java.io.File.getCanonicalPath()的奇怪行为。我认为CanonicalPath将始终代表抽象底层文件的真正唯一路径。但是,如果文件名由两个点和一个空格组成,则CanonicalPath似乎不再代表正确的路径。例子如下:Fileroot=newFile("c:/git/");Stringrelative="../..\\";FileconcatFile=newFile(root.getCanonicalPath(),relative);System.out.println("ConcatFi