使用预定义的功能检查对请求(URL)的父目录访问

时间:2019-06-20 05:45:14

标签: c#

需要知道如何检查父目录访问权限。

情况1:路径= https://18.56.199.56/Project/Docs/../Hello.File.txt
情况2:路径= https://18.56.199.56/Project/Docs/Hello..File.txt

使用一些检查,我需要找到父目录访问权限(如情况1),而不是文件名中的“ ..”(如情况2)

使用下面的代码,我可以获得预期的输出,但是我需要一些预定义的方法(例如Uri.AbsoluteUri Properties)来完成相同的工作。

class Program
{
    static void Main(string[] args)
    {
       if (Path.Contains("../")) {
          // do something
       }
    }
}

要求:需要一些类似下面的预定义方法才能完成此工作。使用下面的代码,我将isFile设置为false。

var isFile = new Uri(Path).AbsoluteUri.Split('/')。Contains(“ ..”);

1 个答案:

答案 0 :(得分:3)

要检查路径是否包含../,可以使用string.Contains()

https://docs.microsoft.com/en-us/dotnet/api/system.string.contains?view=netframework-4.8

filePath1 = filePath1.Replace("../", "")

// To skip ../ in the path we check in the first contains if it's in the path.
// The definition of || is OR  
// To skip ./ in the path we check it in the second part of the if statement.
// So in pseudo code it says:
// if filepath1 conatains ../ OR if filepath1 contains ./ return null 
if (filePath1.Contains("../") || filePath1.Contains("./"))
    return null;