【问题标题】:CefSharp.BrowserSubprocess.exe requires Windows Firewall prompt. But why?CefSharp.BrowserSubprocess.exe 需要 Windows 防火墙提示。但为什么?
【发布时间】:2020-09-05 20:57:58
【问题描述】:

有谁知道我在哪里可以找到描述 Windows 上 CefSharp.BrowserSubprocess.exe 实际使用哪些端口和协议的文档(或实际来源)?加载 CefSharp 嵌入式浏览器时,会显示一个 Windows 防火墙提示权限对话框。这个防火墙提示相当可怕,如果我们的安装程序自动创建规则会更好。但我想只打开需要的东西。

我看到提示用户时创建的规则基本上打开了所有通过 TCP 和 UDP 在 any 端口上的通信。但似乎唯一需要的通信是在同一个盒子上的主 exe 和 CefSharp.BrowserSubprocess 之间。 (为什么要打开任何个外部端口?)

然而,有趣的是,即使您不允许创建防火墙规则,嵌入式浏览器似乎也可以工作 - 并且子进程仍会启动并且似乎正在正确执行(来自在任务管理器中观察)。

我在此处发布了此问题:https://github.com/cefsharp/CefSharp/issues/3075,并在此处被提及:https://magpcss.org/ceforum/index.php,但我关于此主题的问题被新闻组管理员拒绝为“离题”。

我还尝试构建和运行 CefSharp 代码(特别是 CefSharp.Wpf.Example),但应用程序在加载时崩溃了。我想我需要更多地调试这个。查看源代码,我很难确定实际调用了 TCP 或 UDP 套接字侦听代码的位置。

总之,总而言之,我试图避免这个提示(通过在安装时添加防火墙条目),但我不想因为打开过多而招致更多风险。

更多地反映这一点,如果默认行为是为其工作是执行代码的进程打开外部端口,这似乎是一个潜在的安全问题。也许这以某种方式抵消了 Chromium 网络服务的进程隔离的安全目标?

【问题讨论】:

  • 根据我的评论github.com/cefsharp/CefSharp/issues/3075#issuecomment-597299282,所有网络都是由一个单独的过程完成的。这与 Chrome/Chromium 的行为相同。如果您查看任务管理器,您会看到带有 --type=utility 的 Chrome.exe 实例。 “如果默认行为是为一个其工作是执行代码的进程打开外部端口,这似乎是一个潜在的安全问题”是什么意思?网络服务旨在仅执行网络请求。你有没有查看谷歌浏览器打开了哪些端口?
  • 如果您只想打开设置的端口,那么您需要确定您将允许哪些功能。 http/https/webrtc/websockets等
  • 查看 chromium.org/developers/technical-discussion-groups 获取 chromium 讨论组列表,可能 net-dev 是提问的地方
  • 谢谢@amaitland。我了解 CefSharp 的运行方式与 Chrome/Chromium 类似。但是 Chrome 不需要打开入站防火墙端口。当端口打开时,它们允许接收和执行来自其他计算机的入站请求。这是一个潜在的问题。如果只需要在托管 CefSharp 嵌入式浏览器的进程和 CefSharp.BrowserSubprocess.exe 之间进行通信,我想我不清楚这是否真的需要。 WebSockets 似乎不需要打开额外的端口。我想我不知道究竟是什么代码触发了防火墙提示
  • 请使用 CEF 示例应用程序进行测试。您会看到该行为不是 CefSharp 特定的。 NetNamedPipeBinding 的使用是 CefSharp 特定的,应该排除这种情况。我对入境港口感到困惑。我希望您需要允许 80、443 用于出站,也许还有其他一些端口,我将从这些开始。正如我所说的那样,防火墙提示并不意外github.com/cefsharp/CefSharp/issues/3075#issuecomment-597299282

标签: sockets cefsharp chromium-embedded


【解决方案1】:

根据@amaitland 的指导,我们找到了两种可能的解决方案:

  1. 在安装时(使用管理员权限),为 mDNS 创建一个 Windows 防火墙条目,该条目与 CefSharp.BrowserSubprocess.exe 绑定,UDP 端口为 5353。
  2. 禁用mDNS 使用:settings.CefCommandLineArgs.Add("disable-features", "WebRtcHideLocalIpsWithMdns"); 此解决方案无效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2014-07-20
    • 2013-07-25
    • 2012-02-11
    相关资源
    最近更新 更多