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
特性,我可以這樣啟動它
若要開啟多個特性
若要允許所有特性,但一個例外