CefSharp.BrowserSubprocess.exe需要Windows防火墙提示但是为什么呢?

问题描述

有人知道我在哪里可以找到描述Windows上CefSharp.BrowserSubprocess.exe实际使用的端口和协议的文档(或实际资源)?加载CefSharp嵌入式浏览器后,将显示Windows防火墙提示权限对话框。这个防火墙提示非常令人恐惧,如果我们的安装程序自动创建规则,那就更好了。但是我只想打开需要的东西。

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

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

我在这里https://github.com/cefsharp/CefSharp/issues/3075上发布了这个问题,并在这里引用了https://magpcss.org/ceforum/index.php,但是我对这个主题的问题被新闻组管理员拒绝为“不在主题”。

我还尝试构建并运行CefSharp代码(特别是CefSharp.Wpf.Example),但该应用程序在加载时崩溃。我想我需要进一步调试。从源代码来看,我很难确定实际在何处调用了TCP或UDP套接字侦听代码。

总而言之,我试图避免这种提示(通过在安装时添加防火墙条目),但是我不想通过打开比需要更多的内容而招致更多风险。

对此进行更多思考,如果默认行为是为要执行代码的进程打开外部端口,则这似乎是一个潜在的安全问题。也许这在某种程度上抵消了Chromium网络服务的进程隔离的安全性目标?

解决方法

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...