我如何确保没有人可以访问Websever中文档根目录之外的文件

时间:2019-04-24 18:55:11

标签: c server document-root

我目前正在使用C语言在网络服务器上工作。 我想确保无法访问文档根目录之外的文件,并且我需要编写一个函数来检查请求文件/该文件的路径(例如/index.html),并确保没有办法脱离我的文档根目录(例如/../会使它脱离文档根目录)。我当时正在考虑只检查../并删除它,但随后有人可以请求.... //,如果我们从其中删除../,那将再次是../。是否有一些我没有想到的聪明方法?

1 个答案:

答案 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); } 和所有./都已解析。也用/../解决后,存储“文档根目录”。之后,您可以简单地realpathmemcmp解析路径来使用已解析路径名指向要测试的路径的文档根目录。