快速摘要
AI 寫的自動化腳本可能包含危險操作:rm -rf、未經驗證的 sudo、不安全的檔案權限。這篇教你如何審查和安全地使用 AI 生成的腳本。

AI 腳本的風險

AI 生成的自動化腳本有特殊風險,因為腳本通常有較高的系統權限:

  • 檔案刪除:rm -rf 配合空變數可能刪除整個系統
  • 權限修改:chmod 777 讓所有人可讀寫執行
  • 網路下載執行:curl | bash 直接執行遠端腳本
  • 環境變數洩漏:echo $SECRET_KEY 把密碼印出來

Shell 腳本安全

Shell 腳本的安全寫法:

  • 開頭加 set -euo pipefail:遇到錯誤立即停止
  • 變數用雙引號包起來:"$VARIABLE" 而不是 $VARIABLE
  • 刪除操作前先確認路徑:if [ -z "$DIR" ]; then exit 1; fi
  • 不要用 root 執行不需要 root 的操作
  • 使用 shellcheck 工具檢查語法和安全問題

Python 腳本安全

  • 不要用 os.system(),用 subprocess.run()
  • 不要用 eval() 或 exec()
  • 檔案操作使用 pathlib 而不是字串拼接
  • 密碼和 Key 用環境變數,不要硬編碼
  • 用 virtual environment 隔離依賴

審查要點

  1. 搜尋所有 rm、del、rmdir 操作,確認刪除目標正確
  2. 搜尋所有 chmod、chown 操作,確認權限設定合理
  3. 搜尋所有 curl、wget 操作,確認下載來源可信
  4. 搜尋所有 sudo 操作,確認是否真的需要 root
  5. 確認錯誤處理:腳本失敗時不會留下殘破的狀態

常見問題

AI 寫的 Shell 腳本可以直接執行嗎?

絕對不行直接執行。先閱讀每一行,特別注意 rm、chmod、sudo、curl | bash 等危險指令。建議先在測試環境執行。

怎麼限制腳本的權限?

用最小權限原則:不要用 root 執行、限制檔案存取範圍、使用 Docker 隔離執行環境。

AI 會寫出刪除系統檔案的腳本嗎?

會。AI 可能在清理腳本中生成 rm -rf / 或 rm -rf $VARIABLE(當變數為空時等同刪除根目錄)。務必檢查每個刪除操作。