有人知道我在哪里可以找到描述CefSharp.BrowserSubprocess.exe在Windows上实际使用的端口和协议的文档(或实际来源(吗?加载CefSharp嵌入式浏览器时,将显示"Windows防火墙提示权限"对话框。这个防火墙提示相当可怕,如果我们的安装程序自动创建规则会更好。但我只想打开需要的东西。
我看到,当提示用户时创建的规则基本上打开了通过任何端口的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的指导,我们找到了两种可能的解决方案:
- 在安装时(具有管理员权限(,为绑定到具有UDP端口5353的
CefSharp.BrowserSubprocess.exe
的mDNS创建一个Windows防火墙条目 - 禁用
mDNS
使用:settings.CefCommandLineArgs.Add("disable-features", "WebRtcHideLocalIpsWithMdns");
<-此解决方案不起作用