我如何强制Uri使用baseUri?

问题描述 投票:0回答:1

[Uri类与基本URI一起使用似乎是一个主要问题。出于某种原因,如果传入一个相对URI并且它似乎是完整的URL,则“特征”是Uri类将忽略baseUri并仅使用相对Uri。这可能是一个安全漏洞,我想了解如何避免它,但仍然获得结合基本和相对URI的功能,以便在C#dotnetcore中创建单个URL。

在下面的示例中,您可以看到http://badexample.com的相对uri使baseUri不出现在生成的URI中。这很危险。

using System;

public class Program
{
    public static void Main()
    {
        var baseUri = new Uri("http://google.com");
        var relativeUri = new Uri(baseUri, "search?q=stuff");
        Console.WriteLine(relativeUri);

        var badUri = new Uri(baseUri, "http://badexample.com");
        Console.WriteLine(badUri);
    }
}

输出:

http://google.com/search?q=stuff
http://badexample.com/
c# .net-core uri
1个回答
0
投票

嗯,您可以逃脱:

© www.soinside.com 2019 - 2024. All rights reserved.