在强大的SQL背景之后第一次使用firebase。我习惯使用像SELECT
costumer.email,
costumer.lastcode,
reward.costumercode,
reward.balance
FROM (SELECT DISTINCT
rewards.costumercode,
MAX(rewards.balance) as balance
FROM rewards
GROUP BY 1) AS reward
JOIN costumercode ON costumercode.id = reward.costumercode
JOIN costumer ON costumer.id = costumercode.costumer
这样的函数来清理用户对查询的输入。
使用Firebase查找是否有任何标准方法可以执行类似操作?
例如:
addslashes()
我不知道用户能够在ref中进一步搜索是多么恶意,但也许这个问题已经解决了?或者我需要// expected a key, not a path
var userProvidedKey = "3/malicious"
// will not be a ref to what I expect
var ref = firebase.database().ref(`something/${userProvidedKey}`)
我收到的任何输入吗?
注意:使用JS SDK作为我的示例。
答案 0 :(得分:2)
在进入数据库之前,应始终对输入/输出进行清理和验证。
Firebase提供了security和data validation checks,可在您的应用中使用。 Firebase还在其数据库中提供规则,以确定哪些用户具有对数据库中哪些数据的写/读访问权。
有关详情,请参阅有关Firebase实时数据库的documentation。
发现此帖子Adding Firebase data, dots and forward slashes可能会回答有关Firebase特定卫生的一些实际问题。