gpt4 book ai didi

java - 如何防止Java中的路径遍历

转载 作者:搜寻专家 更新时间:2023-11-01 03:04:44 26 4
gpt4 key购买 nike

最近,我使用 AppScan Source 扫描代码,它发现了一个我不知道如何修复并传递给扫描器的发现

这是我的代码。

public void init()
{
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");

String pth = "C:\\wls1034\\user_projects\\domains\\base_domain\\servers\\AdminServer\\tmp\\_WL_user\\SimulationService\\39m5yi\\war\\WEB-INF";
String n= prefix+file;

File fileExists = new File(n);
if (fileExists.exists()) {
PropertyConfigurator.configure("C:\\wls1034\\user_projects\\domains\\base_domain\\servers\\AdminServer\\tmp\\_WL_user\\SimulationService\\39m5yi\\war\\WEB-INF" + file);
} else {
BasicConfigurator.configure();
}
}

我尝试添加 if 语句来检查路径中的任何特殊字符。然而,扫描器仍然在“File fileExists = new File(n);”中报告发现

public void init()
{
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");

String pth = "C:\\wls1034\\user_projects\\domains\\base_domain\\servers\\AdminServer\\tmp\\_WL_user\\SimulationService\\39m5yi\\war\\WEB-INF";
String n= prefix+file;
//For Security Checking
if (file != null && !n.contains("../") && !n.contains("$") && !n.contains("*"))//Check the path whether it's included risk character
{

File fileExists = new File(n);
if (fileExists.exists()) {
PropertyConfigurator.configure("C:\\wls1034\\user_projects\\domains\\base_domain\\servers\\AdminServer\\tmp\\_WL_user\\SimulationService\\39m5yi\\war\\WEB-INF" + file);
} else {
BasicConfigurator.configure();
}
}
}

最佳答案

这只是扫描仪的误报。上述代码没有安全风险,因为读取或写入路径时不涉及用户输入。

关于java - 如何防止Java中的路径遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26557846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com