Firestore防止恶意用户添加多于所需的数据



我使用Angular作为我的前端和Cloud函数,后端使用Firestore。

当我在Firestore中set数据时,我希望将用户限制为特定模型的数据。例如,假设我的"模型"是:

interface Person {
name: string
age: number
}

没有什么可以阻止恶意用户发送如下对象:

{
name: 'Anna', 
age: 22,
unWantedData: 'Some unwanted data' 
}

最好的预防方法是什么?我看过Firestore转换器,但这真的是正确的方法吗?

我还有另一个相关的问题。我非常熟悉使用实体的SQL和ORM的工作,例如TypeORM:

@Entity()
export class Post {
@PrimaryGeneratedColumn()
id: number

@Column()
@Length(10, 20)
title: string

@Column()
@IsInt()
@Min(0)
@Max(10)
rating: number

@Column()
@IsEmail()
email: string

@Column()
@IsDate()
createDate: Date
}

是否有验证器就像Firestore那样?也许使用规则?

您的问题的最后一行中有答案:您确实可以使用Firebase的服务器端安全规则来验证数据。

安全规则仅适用于来自客户端SDK的访问,而不适用于通过Admin SDK的连接(例如您提到的来自Cloud Functions的连接)。如果写操作发生在这样一个受信任的环境中,那么您必须在将应用程序代码中的数据传递给Firebase之前验证它。

最新更新