【问题标题】:How Can I Open A New Browser Within An App Using Sandbox?如何使用沙盒在应用程序中打开新浏览器?
【发布时间】:2022-10-12 23:06:26
【问题描述】:

我有一个应用程序可以在不同的浏览器中测试网页的布局,而不需要用户将新的浏览器下载到他们的本地。每次该用户打开新浏览器来测试页面时,我希望该浏览器在沙箱中打开,以限制浏览器在遇到任何恶意软件或危险站点时的操作。

我怎样才能做到这一点?

笔记:这个应用程序是用 C# 编写的。

【问题讨论】:

    标签: c# sandbox


    【解决方案1】:

    您将面临几个挑战,因此我将尝试一次解决它们。您可能还想确定这是否是可接受的工作流程,因为每个启动的沙箱默认只有默认浏览器。其他浏览器可能必须手动安装,甚至编写脚本,但会花费时间并减慢测试速度。

    1.) 从网站启动沙箱:

    从网站启动沙盒将是一个挑战,您可以通过在 Windows 注册表中配置自定义 URL 协议来处理链接点击来实现这一目标。这将需要您编写注册表值、拦截回调并处理参数。 How to launch an application from a browser?

    我将补充一点,如果权限有问题,您还可以在用户子项中注册该自定义 URL 协议。所以可能看起来更像以下内容:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USERSOFTWAREClassesApplicationsYourExe.exe]
    "FriendlyAppName"="Your Application Name"
    
    [HKEY_CURRENT_USERSOFTWAREClassesApplicationsYourExe.exeDefaultIcon]
    @=""C:\Path\To\Your\executable.exe",0"
    
    [HKEY_CURRENT_USERSOFTWAREClassesApplicationsYourExe.exeshell]
    
    [HKEY_CURRENT_USERSOFTWAREClassesApplicationsYourExe.exeshellopen]
    
    [HKEY_CURRENT_USERSOFTWAREClassesApplicationsYourExe.exeshellopencommand]
    @=""C:\Path\To\Your\executable.exe" "%1""
    

    2.) 配置你的沙箱:

    您可以设计一种基于创建 .wsb 文件并使用启动脚本填充它的解决方法。您的回调处理程序 exe 将采用从自定义 URL 协议传递的参数,填充此 .wsb 并启动它。

    https://www.windowscentral.com/how-configure-windows-sandbox-windows-10

    基于此,您可能会有以下内容:

    <Configuration>
    <VGpu>Default</VGpu>
    <Networking>Default</Networking>
    <MappedFolders>
       <MappedFolder>
         <HostFolder>C:FolderThatContainsBrowserInstaller</HostFolder>
         <ReadOnly>false</ReadOnly>
       </MappedFolder>
    </MappedFolders>
    <LogonCommand>
       <Command>Powershell.exe -ExecutionPolicy Unrestricted C:usersWDAGUtilityAccountDesktopFolderThatContainsBrowserInstallerScriptThatInstallsBrowserAndLaunchesURL.ps1</Command>
    </LogonCommand>
    </Configuration>
    

    可以在此处找到其他帮助:Starting the Windows Sandbox from managed code

    您必须决定 ScriptThatInstallsBrowserAndLaunchesURL.ps1 的实际作用,但安装浏览器进行测试,然后使用 URL 启动它听起来是一项相当简单的任务。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 2011-03-20
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      相关资源
      最近更新 更多