Firebase 版本的 SQL 注入

Firebase's version of SQL Injection

在 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。

Input/output 应始终在进入数据库之前进行清理和验证。

Firebase 提供 security and data validation checks 供您在应用程序中使用。 Firebase 还在其数据库中提供规则以确定哪些用户可以write/read 访问数据库中的哪些数据。

有关更多信息,请阅读有关 Firebase 实时数据库的 documentation

找到此线程 Adding Firebase data, dots and forward slashes,它可能会回答一些关于 Firebase 特定环境卫生的实际问题。