我的目標是創建一個表格(Google表格),以可讀的方式呈現Firebase DB中的一些數據。使用這真棒教程從Apps腳本讀取和寫入Firebase數據 - 以安全的方式
的事情是,這片存在安全/隱私的危險 - 因爲「DB的祕密」中的腳本所示。因此,我無法分享此表單/腳本。
有沒有一種方法可以在不編寫網絡應用程序的情況下以安全的方式使用Google Apps腳本(使用Google表格)? 也許通過添加某種「登錄」機制? 或限制訪問某些用戶(通過他們的電子郵件標識)?
我的目標是創建一個表格(Google表格),以可讀的方式呈現Firebase DB中的一些數據。使用這真棒教程從Apps腳本讀取和寫入Firebase數據 - 以安全的方式
的事情是,這片存在安全/隱私的危險 - 因爲「DB的祕密」中的腳本所示。因此,我無法分享此表單/腳本。
有沒有一種方法可以在不編寫網絡應用程序的情況下以安全的方式使用Google Apps腳本(使用Google表格)? 也許通過添加某種「登錄」機制? 或限制訪問某些用戶(通過他們的電子郵件標識)?
你可以移動敏感代碼到一個獨立腳本和部署它作爲一個̶[圖書館]̶[1],然後就可以參考庫中你容器結合的腳本和你唯一」 LL暴露是函數簽名,而不是其中的代碼保持̶「DB祕密」̶安全。
甚至可以添加額外的安全性,並創建一個白名單用戶,̶和GATE的代碼庫中的,使得訪問只授予這些上的列表中,因爲̶y̶o̶u̶'̶l̶l̶能夠檢測當前用戶經由̶̶S̶e̶s̶s̶i̶o̶n̶.̶g̶e̶t̶A̶c̶t̶i̶v̶e̶U̶s̶e̶r̶(̶)̶.̶g̶e̶t̶E̶m̶a̶i̶l̶(̶)̶
̶。
更新1
驗證@Frank麪包車Puffelen評論,他是正確的,一個庫中的代碼可以通過直接鏈接到獨立腳本被暴露。爲了使用戶能夠使用庫,他們需要以最小的僅查看訪問權限,這使得他們可以使用直接鏈接到獨立腳本來查看代碼。
但是,這是一個可行的解決方案,您可以將您的腳本部署爲add-on,這將確保您的代碼保持私密。您的用戶必須安裝插件才能使用您的腳本,但他們無法訪問代碼。
更新2
相信庫可能仍然是可行的爲您的使用情況,但你不得不去的迂迴的排序方式使用它們。
因此,這裏是你怎麼可能去了解它:
創建,不是一個,而是庫。
公開分享這些庫中的一個,以便用戶可以訪問它們。讓我們叫這個庫LIB_A。
存儲在第二庫中的任何敏感的數據和功能;我們稱之爲LIB_B。
有LIB_A參考LIB_B。由於LIB_A和LIB_B都屬於同一個帳戶,LIB_A可以訪問LIB_B的內容。但是,LIB_B的內容將不會公開給您的用戶(只要它不共享) 。
注意,這種方法也不是沒有其缺點,你的應用需要,只要您使用庫,以便您使用更慢的你的執行時間越庫性能的下降。所以如果你有時間關鍵的代碼,這可能不是最好的方法。
是不是總是可以通過[這裏]顯示的方法來查看庫的代碼(https://stackoverflow.com/questions/31993969/how-can-i-view-the-source-of-a-google -apps腳本庫)? –
@FrankvanPuffelen沒有考慮到這一點。更新我的答案,建議使用附加組件。 –
感謝您的原創想法(在附加組件上使用庫)。 對這個所有「祕密」方法仍然不滿意。 我不知道是否有一種方法來驗證用戶使用特定的工作表,運行特定的腳本 - 這樣就不需要使用這個祕密機制... 如果不是,我猜不會有任何選項,但寫入訪問FireBase的Web應用程序... – user6097845
更新了我的回答,以迴應Frank van Puffelen的評論。 –