首页
/ Sandboxie-Plus模板系统深度解析:Templates.ini文件详解

Sandboxie-Plus模板系统深度解析:Templates.ini文件详解

2025-07-06 01:26:13作者:牧宁李

一、Templates.ini文件概述

Templates.ini是Sandboxie-Plus中一个核心配置文件,它定义了沙箱环境中的各种访问规则和预设模板。这个文件包含了系统级的访问控制策略,为不同应用程序在沙箱中的运行提供了基础安全框架。

二、文件结构与组织原理

2.1 主要组成部分

该配置文件采用INI格式,主要包含以下几个关键部分:

  1. 默认模板集合:通过[DefaultTemplates]节定义系统预装的模板
  2. 模板变量定义:在[TemplateSettings]节中定义可重用的路径变量
  3. 基础访问规则:包括文件、注册表、IPC等资源的访问控制
  4. 特殊模式规则:如网络限制模式、设备限制模式等

2.2 模板继承机制

Sandboxie采用分层模板系统,允许:

  • 基础模板提供通用规则
  • 专用模板针对特定应用优化
  • 用户自定义模板扩展功能

三、核心模板解析

3.1 浏览器相关模板

文件中定义了多种浏览器的配置文件路径模板:

# Firefox系
Tmpl.Firefox=%AppData%\Mozilla\Firefox\Profiles\*
Tmpl.Waterfox=%AppData%\Waterfox\Profiles\*

# Chromium系
Tmpl.Chrome=%Local AppData%\Google\Chrome\User Data\Default
Tmpl.Edge=%Local AppData%\Microsoft\Edge\User Data\Default

这些变量可在其他模板中引用,确保浏览器数据能被正确隔离。

3.2 邮件客户端模板

针对常见邮件客户端也提供了支持:

Tmpl.Office_Outlook=%Local AppData%\Microsoft\Outlook
Tmpl.Thunderbird=%Local AppData%\Thunderbird
Tmpl.eM_Client=%AppData%\eM Client

四、访问控制规则详解

4.1 文件系统访问规则

文件定义了精细的文件访问控制:

# 允许访问的路径
OpenFilePath=\Device\NamedPipe\
OpenFilePath=\Device\MailSlot\

# 禁止访问的路径
ClosedFilePath=\Device\LanmanRedirector
ClosedFilePath=\Device\Mup

4.2 IPC(进程间通信)规则

IPC控制是Sandboxie安全模型的关键部分:

OpenIpcPath=\Windows\ApiPort
OpenIpcPath=\Sessions\*\Windows\ApiPort
OpenIpcPath=*\BaseNamedObjects\CrSharedMem_*  # Chromium浏览器需要

4.3 窗口类控制

控制哪些窗口类可以跨沙箱交互:

OpenWinClass=Shell_TrayWnd  # 系统任务栏
OpenWinClass=Credential Dialog Xaml Host  # 凭据对话框

五、特殊模式模板

5.1 网络限制模式([TemplateNetworkPaths])

# 允许的网络相关设备
OpenFilePath=\Device\Tcp
OpenFilePath=\Device\Tcp6

# 禁止的网络访问
ClosedFilePath=\Device\afd*
ClosedFilePath=\Device\ip

5.2 设备限制模式([TemplateSModPaths])

# 基本禁止所有设备访问
ClosedFilePath=\Device\*

# 例外允许的设备
NormalFilePath=\Device\NamedPipe\*
NormalFilePath=\Device\Null

5.3 隐私增强模式([TemplatePModPaths])

# 允许读取系统关键位置
NormalFilePath=%SystemRoot%\*
NormalFilePath=%ProgramFiles%\*

# 限制写入位置
WriteKeyPath=\REGISTRY\USER\*

六、自定义模板最佳实践

虽然不建议直接修改Templates.ini,但可以在Sandboxie.ini中创建自定义模板:

  1. 使用唯一前缀(如"Local_")避免冲突
  2. 引用系统预定义的变量(Tmpl.*)
  3. 针对特定应用设计最小权限规则

示例:

[Template_Local_MyApp]
Tmpl.Title=My Application
Tmpl.Class=Local
OpenWinClass=MyApp_WindowClass
OpenIpcPath=*\BaseNamedObjects*\MyApp_*

七、模板版本控制与兼容性

文件头部包含版本标识:

[TemplateSettings]
Tmpl.Version=1

这确保了未来更新时能保持向后兼容性。

八、总结

Templates.ini是Sandboxie-Plus安全架构的基石,它通过精心设计的访问控制规则和模板系统,实现了:

  1. 应用程序隔离
  2. 资源访问控制
  3. 特殊运行模式支持
  4. 跨版本兼容性

理解这个文件的结构和原理,有助于用户更好地定制安全沙箱环境,平衡安全性与可用性的需求。