跳至内容

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功能,我可以像这样启动它

appium --allow-insecure=get_server_logs

要打开多个功能

appium --allow-insecure=get_server_logs,record_audio

要允许除一个功能之外的所有功能

appium --relaxed-security --deny-insecure=adb_shell