请在下面找到我写的代码:
private void WriteLogs(Guid _guid)
{
string varpath = ConfigurationManager.AppSettings["LogFilePath"].ToString() + @"\ErrorLogs\Logs\";
string FileName = _guid.ToString() + ".txt";
string finalPath = System.IO.Path.GetFullPath(varpath + FileName);
if (Path.GetDirectoryName(finalPath) == Path.GetDirectoryName(varpath))
{
if (!Directory.Exists(varpath))
{
Directory.CreateDirectory(varpath);
}
// Other code
}
}
请告诉我此代码是否会阻止Directory Traversal漏洞?
答案 0 :(得分:0)
由于Guid
是传入的唯一内容,并且Guid
不能是..\..\
形式,我认为您可以安全地使用Directory Traversal Attack。< / p>
唯一的其他输入是ConfigurationManager.AppSettings["LogFilePath"]
。这可以是X:\Example\..
的形式,但它也可以是X:\
,所以我不认为这是一个问题。无论哪种方式,您都会将@"\ErrorLogs\Logs\"
添加到您正在编写的路径中。
我还建议您使用Path.Combine,这样您就不必迷失\
的
string varpath = Path.Combine(ConfigurationManager.AppSettings["LogFilePath"]
.ToString(), @"ErrorLogs\Logs");
答案 1 :(得分:0)
这对我有用:
<FlatList products={products}