我目前正在使用C语言在网络服务器上工作。 我想确保无法访问文档根目录之外的文件,并且我需要编写一个函数来检查请求文件/该文件的路径(例如/index.html),并确保没有办法脱离我的文档根目录(例如/../会使它脱离文档根目录)。我当时正在考虑只检查../并删除它,但随后有人可以请求.... //,如果我们从其中删除../,那将再次是../。是否有一些我没有想到的聪明方法?
答案 0 :(得分:2)
使用realpath:
realpath-返回规范化的绝对路径名
它将返回绝对路径名,其中包含所有符号链接,所有 Random ran = new Random();
public static double GetRandom(double[] array, Random ran)
{
int n = ran.Next(array.Length);
return array[n];
}
private void Window_Activated(object sender, System.EventArgs e)
{
c1 = c-GetRandom(arr, ran);
c2 = c-GetRandom(arr, ran);
}
和所有./
都已解析。也用/../
解决后,存储“文档根目录”。之后,您可以简单地realpath
或memcmp
解析路径来使用已解析路径名指向要测试的路径的文档根目录。