一個常見的常識問答:
「密碼或是 API Key 或是 Secret 可以直接寫在程式碼裡嗎?」
幾乎所有的人都能正確回答說「當然不行!」
好的,那如果不寫在程式碼裡,那要寫在哪裡呢?
這個問題就考驗了你對這個系統的了解程度了。
我們今天就來聊聊,在 Google Apps Script 中要怎麼樣妥善存放這些敏感資訊。
這幾個詞常常混在一起用,但其實各自有不同的角色或語境。
不建議直接把密碼、token、secret、credential、API key 等敏感資訊寫死在 Google Apps Script 程式碼裡,原因主要有以下幾點:
Google Apps Script 提供幾種更安全的方式來管理敏感資訊:
可以把 key/secret 存在 Script Properties 或 User Properties,程式裡用 PropertiesService.getScriptProperties()
來讀取。
優點:程式碼裡不會出現敏感字串,可以集中管理。
// 設定(只需要執行一次)
function setApiKey() {
PropertiesService.getScriptProperties().setProperty("API_KEY", "your_api_key_here");
}
// 取用
function callApi() {
const apiKey = PropertiesService.getScriptProperties().getProperty("API_KEY");
const response = UrlFetchApp.fetch("https://example.com/api", {
headers: { "Authorization": "Bearer " + apiKey }
});
Logger.log(response.getContentText());
}
如果你的專案比較大、需要多人協作,可以把 secrets 放在 Secret Manager,然後 Apps Script 透過服務帳號存取。
適合企業級需求,管理權限更精細。
若是小專案,也可以把敏感資訊放在一個獨立檔案(例如 properties.json),存放於 Google Drive(但要小心檔案分享權限)。
const API_KEY = "hardcoded_api_key"; // ❌ 不要這樣
今天我們深入探討了在 Google Apps Script 中管理敏感資訊的最佳實踐:
了解不同類型的敏感資訊:從密碼、token、secret 到 API key,每種都有其特定的用途和安全性考量。
避免硬編碼:絕對不要將敏感資訊直接寫在程式碼中,這會帶來嚴重的安全風險。
使用 Properties Service:這是 Google Apps Script 內建的安全儲存方案,適合大多數使用情境。
企業級方案:對於大型專案,可以考慮使用 Google Cloud Secret Manager 來集中管理。
記住,安全不是一次性的工作,而是持續的過程。定期檢查和更新你的敏感資訊,確保你的應用程式始終保持最佳的安全狀態。
Google Apps Script 資安小教室,我們明天見!
如果想要看一些我鐵人賽之外的 Google Apps Script 分享,
也歡迎追蹤我的 Threads 和 Facebook