我知道我們可以使用Firebase後端功能向Google Apps腳本發送HTTP請求,並使用「doGet()」接收該請求。與Google Apps腳本的Firebase通信
但是,是否可以從Firebase調用Google Apps腳本功能而不發送HTTP請求(因爲它是同一Google帳戶的一部分)?
我擔心的是安全問題,人們可能會猜測/嗅探正確的URL /參數,然後執行Google Apps腳本功能(進行購買)。或者,可能有適當的方法來保護GAS網絡應用程序。
我知道我們可以使用Firebase後端功能向Google Apps腳本發送HTTP請求,並使用「doGet()」接收該請求。與Google Apps腳本的Firebase通信
但是,是否可以從Firebase調用Google Apps腳本功能而不發送HTTP請求(因爲它是同一Google帳戶的一部分)?
我擔心的是安全問題,人們可能會猜測/嗅探正確的URL /參數,然後執行Google Apps腳本功能(進行購買)。或者,可能有適當的方法來保護GAS網絡應用程序。
缺少一些細節。但我認爲您所要求的Google Cloud Functions/Cloud Functions for Firebase可以調用Apps Script web app或Apps Script REST API。答案是,他們確實可以調用這些URL(如果它們可以公開訪問並落入您的配額)。
但這並不比任何瀏覽器可以調用這些URL更安全的風險。安全性不應該來自知道或能夠調用URL。如果你想保護一個API,你應該對它實施適當的安全性。更多詳情請參閱Authorization for Google Services in Apps SCript
弗蘭克,非常感謝你的迴應和建議!我通讀了你的鏈接。 - >我將啓用Firebase登錄選項(即「電子郵件和密碼」)。澄清 - 有沒有一種方法可以確保僅登錄用戶的Firebase應用程序對我的Google Apps腳本網絡應用程序執行HTTP請求? (我過去沒有使用Execution API,這可能是答案)。正如我所提到的,目前,「猜測」正確的URL可以創建購買,而我的Web應用程序目前已發佈,可供「任何人,甚至匿名」訪問。提前再次感謝! –
解決方案是保護您的Apps腳本Web應用程序在這種情況下。我從未嘗試將Firebase身份驗證憑據/令牌傳遞給應用程序腳本。您必須在Apps腳本端解碼Firebase令牌/ JWT,與[此示例在Firebase Hosting中執行的操作類似](https://github.com/firebase/functions-samples/tree/master/authorized-https) -endpoint)。我自己從來沒有這樣做過,似乎不是一個樣本,所以不能在那裏幫忙。 –