在强大的SQL背景之后第一次使用firebase.我习惯使用诸如addslashes()之类的函数来清理用户对查询的输入.
有没有标准方法与Firebase查找做类似的事情?
例如:
// 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}`)
我不知道用户能够在ref中进一步搜索是多么恶意,但是这个问题可能已经解决了吗?或者我需要.split(‘/’).shift()我收到的任何输入?
注意:使用JS SDK作为我的示例.
最佳答案 在进入数据库之前,应始终对输入/输出进行清理和验证.
Firebase提供security和data validation checks以用于您的应用程序. Firebase还在其数据库中提供规则,以确定哪些用户具有对数据库中哪些数据的写入/读取访问权限.
有关更多信息,请阅读有关Firebase实时数据库的documentation.
找到了这个主题Adding Firebase data, dots and forward slashes,可能会回答有关Firebase特定卫生的一些实际问题.