静态代码扫描问题修复之--(输入验证 路径遍历java)
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathTraversal {
public static void main(String[] args) {
// 假设用户输入的路径
String userInput = "../secret-data.txt";
File inputFile = new File(userInput);
try {
// 确保文件存在
if (inputFile.exists()) {
// 读取文件内容
String content = new String(Files.readAllBytes(inputFile.toPath()));
System.out.println("文件内容: " + content);
// 假设有一个新的文件路径
Path tempFilePath = Paths.get("output.txt");
// 写入新文件
Files.write(tempFilePath, content.getBytes());
System.out.println("文件复制成功.");
} else {
System.out.println("文件不存在.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码使用了java.nio.file
包中的Files
和Paths
类来处理文件路径。它首先检查文件是否存在,然后读取文件内容,并尝试将内容写入一个新的文件。这个例子展示了如何处理用户输入的文件路径,避免了路径遍历攻击。
评论已关闭