因此,目前在專案中,我們有一組不需要身份驗證即可讀取的檔案。它們受寫/更新保護,但每個人都可以閱讀。
我們試圖阻止的是有人查看 firebase 端點并以某種方式設法以 json 格式抓取整個集合(如果這可能的話)。資料是公開的,但我希望它只能從我們的網站訪問。
我們能想到的解決方案之一是 SSR(我們已經在使用 Next.js),但是僅僅因為這個原因實作 SSR 似乎并不那么誘人。
任何建議,將不勝感激。
編輯:讓我改寫一下。從您在網路選項卡中看到的內容來看,是否可以偽造/創建對 Firestore 的請求并獲取整個集合,而不僅僅是預期的 1 個檔案?
uj5u.com熱心網友回復:
在您的情況下最好的解決方案是 SSR。我知道,這聽起來可能并不誘人,但好吧,讓我們考慮一下何時應該使用 SSR。在您的用例中,有一個重要的要求:安全性。我認為這已經足以證明使用 SSR 是合理的。
此外,為 next.js 應用程式創建臨時服務帳戶,并使用自定義規則保護資料,這些規則只允許將資料讀取到該服務帳戶,只會提高整體安全級別。
最后:讀取服務器端的資料應該會使您的站點作業得更快一點,即使很難注意到,因為我們正在談論毫秒。請注意,在向 Firebase 發送請求之前,您的頁面需要加載,就像現在一樣。這增加了一個小的延遲。如果資料是在服務器端加載的,則不添加延遲。
uj5u.com熱心網友回復:
是否可以偽造/創建對 Firestore 的請求并獲取整個集合,而不僅僅是預期的 1 個檔案?
如果您想限制人們可以從集合中請求的內容,您正在尋找安全規則。最常見的模型是某種形式的基于所有權的訪問控制或基于角色的訪問控制,但這兩者都需要某種方式來識別用戶。這可以是匿名的(因此無需他們輸入憑據),但它仍然是一種身份驗證形式。
如果您不想這樣做,您仍然可以控制一次可以通過 API 獲取多少資料。例如,如果您在安全規則中允許get但不允許list,則用戶只有在知道其 ID 后才能請求檔案。即使您允許串列,您也可以在規則中控制允許哪些查詢。
uj5u.com熱心網友回復:
我認為一種方法可能是撰寫一個使用管理 SDK 檢索此公共資料的云函式。然后,您可以設定一個規則,禁止任何人閱讀這些檔案。這意味著只有具有管理 SDK 的 Cloud Functions 才能訪問這些檔案。
最后,您可以為該特定云功能設定 AppCheck,這樣可以確保請求僅來自您的客戶端應用程式。
https://firebase.google.com/docs/app-check
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340278.html
標籤:反应 火力基地 谷歌云firestore
上一篇:firebase火焰火庫角色
下一篇:java.lang.IndexOutOfBoundsException:Index:0,Size:0從firebase服務器獲取資料時
