gpt4 book ai didi

c# - 启动不受信任的 URL 的最安全方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:38 24 4
gpt4 key购买 nike

似乎普遍接受的启动 URL 的方法是调用 Process.Start,例如

var url = new Uri(uriString);
Process.Start(url.AbsoluteUri);

例如这是建议 here .

问题在于,如果 URL 不受信任,就会发生不好的事情。例如如果字符串是@"c:\windows\system32\notepad.exe",上面的代码将启动记事本而不问任何问题。

OTOH,如果您尝试在浏览器中启动这样的本地可执行文件,您会在它发生之前进行大量安全检查。

所以问题是:如何以干净的方式(在 C# 中)以编程方式安全地完成此操作?

我们考虑过的不太干净的技术:

  • 查看 Uri 协议(protocol),并阻止任何非 http/https 的内容。这很骇人听闻。
  • 通过一些注册键找到已注册的浏览器,并使用 cmd 行上的 Uri 启动它。对于某些浏览器来说,这种类型的代码往往是困惑且不可靠的。

所以我希望有一种类似于 LaunchUrlThroughBrowser(url) 的技术。

最佳答案

除了手动过滤 URL 之外,似乎没有什么好的方法可以做到这一点,如 Safe Process.Start implementation for untrusted URL strings 中所述。 .所以这可能就是要走的路。

关于c# - 启动不受信任的 URL 的最安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3801078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com