跳到內容

Appium 伺服器安全性

Appium 團隊竭盡全力確保 Appium 伺服器的安全性。當 Appium 在多租戶環境中執行,或多個使用者在同一個 Appium 伺服器上執行階段時,這一點特別重要。一般來說,只有在所有下列情況都符合時,您才能安全地啟用 Appium 的所有功能

  • 您在本地或受保護的內部網路中執行自己的 Appium 伺服器
  • 您沒有與任何不受信任的協力廠商分享
  • 您沒有將 Appium 的埠公開到更廣泛的網際網路

但是,由於許多 Appium 使用者可能無法保證這樣的安全環境,Appium 團隊將許多功能置於安全保護機制之後,迫使系統管理員 (負責啟動 Appium 伺服器的人員) 明確選擇加入 這些功能。(第三方驅動程式和外掛程式作者也可以 將行為隱藏在安全標記之後。)

基於安全考量,Appium 用戶端階段無法透過功能要求啟用功能;這是負責設定和啟動 Appium 伺服器的伺服器管理員的責任。

安全伺服器參數

伺服器 CLI 參數文件概述了三個相關參數,這些參數可以在從命令列啟動 Appium 時傳遞給 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 部分官方驅動程式的不完整範例清單

特性名稱
說明 支援的擴充功能
get_server_logs 允許透過 Webdriver 日誌介面擷取 Appium 伺服器日誌 IOS、XCUITest、Android、UiAutomator2、Espresso
adb_shell 允許透過 ADB 執行任意 shell 指令,使用 mobile: 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