当我调用 endsWith(".pdf")
时,会打开恶意软件.pdf.exe 还是仅打开恶意软件.pdf?
String sFileName = request.getParameter("fName");
if (sFileName.toLowerCase().endsWith(".pdf"))
// open file
else
// don’t open the file
最佳答案
String.endsWith
按文档说明工作。但是,这里存在一些明显的问题。
就操作系统文件 API 而言,NUL 字符
\0
通常会终止字符串(因为它将使用 C 字符串)。如果提供,可能会因扩展而丢失内容,可能会被更改为不同的类型。
从本地文件系统运行从互联网下载的 PDF 通常是危险的。 (Chrome 会对此发出警告,并在 Content Smuggling 上查看 Billy Rios)。
关于java - endsWith 是否考虑路径的文件扩展名,这是否是一个安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926229/