Appium 服务器安全
Appium 团队尽一切努力确保 Appium 服务器的安全。这在 Appium 在多租户环境中运行或多个用户在同一 Appium 服务器上运行会话时尤其重要。通常,只有在以下所有条件都为真的情况下,您才能安全地启用所有 Appium 的功能
- 您在本地或受保护的内部网络中运行自己的 Appium 服务器
- 您没有与任何不受信任的方共享它
- 您没有将 Appium 的端口暴露给更广泛的互联网
但由于许多 Appium 用户可能无法保证如此安全的环境,因此 Appium 团队将许多功能置于安全保护机制之后,该机制强制系统管理员(负责启动 Appium 服务器的人员)明确选择加入这些功能。(第三方驱动程序和插件作者也可以隐藏安全标志后面的行为。)
出于安全原因,Appium 客户端会话不能通过功能请求启用功能;这是配置和启动 Appium 服务器的服务器管理员的责任。
安全服务器参数¶
服务器 CLI 参数 文档概述了三个相关的参数,这些参数可以在从命令行启动 Appium 时传递给它
参数 |
描述 |
---|---|
--relaxed-security |
设置此标志将打开所有不安全功能(除非被--deny-insecure 阻止;见下文) |
--allow-insecure |
将此标志设置为功能名称的逗号分隔列表或包含功能列表的文件路径(每个名称在单独的行上)将仅允许列出的功能。例如,--allow-insecure=adb_shell 将导致仅启用 ADB shell 执行功能。这是除非还使用了--relaxed-security ,在这种情况下,所有功能仍将被启用。将此标志与--relaxed-security 结合使用毫无意义。 |
--deny-insecure |
此标志也可以设置为功能名称的逗号分隔列表或功能文件的路径。此处列出的任何功能都将被禁用,无论是否设置了--relaxed-security ,也不管名称是否也与--allow-insecure 一起列出。 |
不安全功能¶
每个 Appium 驱动程序负责自己的安全,并且可以创建自己的功能名称。因此,您应该通读特定驱动程序的文档以了解它可能使用哪些功能名称。以下是来自 Appium 的一些官方驱动程序的不完整示例列表
功能名称 |
描述 | 支持的扩展(s) |
---|---|---|
get_server_logs |
允许通过 Webdriver 日志接口检索 Appium 服务器日志 | IOS、XCUITest、Android、UiAutomator2、Espresso |
adb_shell |
允许使用mobile: shell 命令通过 ADB 执行任意 shell 命令 |
Android、UiAutomator2、Espresso |
record_audio |
允许录制主机音频输入 | XCUITest |
execute_driver_script |
允许发送包含多个 Appium 命令的请求。 | 执行驱动程序插件 |
示例¶
要为我的 Appium 服务器打开get_server_logs
功能,我可以像这样启动它
要打开多个功能
要允许除一个功能之外的所有功能