[英]Firebase Sending Request to Server from Client Safe Using Socket.IO?
我了解安全規則是保護數據的最安全方法,但它不支持我在用戶單擊特定元素時存儲用戶數據的方法。 這是因為如果我將 write == true 設為 true,他們就可以自願更改數據庫,而我不希望他們這樣做; 我只是想私下記錄他們從我的網站上輸入的內容。
因此,我的解決方案是在服務器上創建另一個數據庫。 在 server.js 文件中初始化 firebase 實時數據庫。 我認為這將是理想的,因為客戶端無法訪問任何憑據(是的,我知道,即使用戶確實擁有它,它也不是那么糟糕,但以防萬一)。
因此,如果我要使用 socket.io 向客戶端請求(他們看到的只是“socket.emit('value', 'value'))那么這不是安全的,因為他們沒有看到與 firebase 數據庫相關的任何內容它都在服務器上(不向用戶顯示)?
我只想澄清這是否安全和理想,因為如果我忽略安全規則,它似乎在邏輯上有效。
向在我之前的帖子中回復的之前的用戶道歉,這可能非常相似,但我已經詳細說明了一點,以使我正在做的事情更清楚一點。
感謝你的幫助。
客戶代碼:
var a = 0; socket.emit('value', a);
服務器代碼:
firebase.initializeApp({ apiKey: VALUE, authDomain: VALUE, databaseURL: VALUE, projectId: VALUE, storageBucket: VALUE, messagingSenderId: VALUE, appId: VALUE, measurementId: VALUE }); socket.on('value', function(data) { var ref = firebase.database().ref('node'); ref.set(data); })
您共享的代碼確實似乎(與您的第一個問題不同)不再向調用者公開您的 Firebase 項目的身份。 因此,調用者無法從您共享的內容中確定數據庫 URL。
這是否足以滿足您的需求,只有您可以確定。 但有幾點要記住:
".read": true, ".write": true
規則仍然允許他們讀取所有數據並寫入任何他們想要的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.