Firebase存储:如果唯一的安全规则是“auth!= null”,恶意的,经过身份验证的用户是否可以将大量文件写入Firebase存储?

问题描述:

我正在开发一个Android应用程序,它利用Firebase存储和安全规则。Firebase存储:如果唯一的安全规则是“auth!= null”,恶意的,经过身份验证的用户是否可以将大量文件写入Firebase存储?

目前,我唯一的Firebase安全规则是在读取和写入时都是auth != null,写入时最大文件大小为5 MB,并且在用户不能再读取文件之前最长为1小时。

我的问题是:这有多安全?恶意用户反复上传多个文件有多难?为了杀死我的存储空间?

+0

您刚刚发布了类似的问题在这里:https://groups.google .com/forum /#!topic/firebase-talk/hS0_rPgsGPM虽然帖子略有不同,但请注明您何时发布多个位置。 –

是的,只需要安全规则auth != null任何经过身份验证的用户都可以将他们想要的任何内容上传到您的云存储存储桶。

如果文件大小为您的使用情况一个现实的关注,你会希望有一个stricter user-check than auth != null和/或实行合理limit on file size

+0

恶意的auth'd用户到底会如何滥用此功能?例如,在我的Android应用程序中,auth'd用户可以上传具有最大文件大小的文件,但客户端代码确定文件名称/路径应该是什么。通过规避我的应用程序的客户端代码,可以授权用户将文件上传到他们想要的任何路径吗?由于存储规则无法与我的实时数据库进行通信,因此我不知道替代方法是什么:( –

+0

您不应该依赖于客户端代码中的逻辑来强制实施约束,而客户端代码是友好的方式来通知你的用户,你需要服务器端的规则,哪些恶意用户无法绕过。我在答案中提供的链接显示了如何做到这一点的存储。 –

+0

从链接,我看到,我可以指定一个特定的文件路径(如$ user_id/file_name),最大文件大小,并且强制只有ID == $ user_id的auth'd用户可以读/写数据。什么阻止用户在此路径上传一百万个文件?我不想硬编码一个可读/写的用户ID列表,因为这将改变非常快。我建议真的是最好的方法(不需要设置客户服务器) –