获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

了解 Cloud Storage 的 Firebase 安全规则

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

传统上,安全性一直是应用程序开发中最复杂的部分之一。在大多数应用程序中,开发人员必须构建和运行一个服务器来处理身份验证(用户是谁)和授权(用户可以做什么)。身份验证和授权很难设置,更难正确,并且对产品的成功至关重要。

与 Firebase 身份验证如何让您轻松对用户进行身份验证类似,Firebase Cloud Storage 安全规则让您可以轻松授权用户和验证请求。云存储安全规则允许您指定基于路径的权限,从而为您管理复杂性。只需几行代码,您就可以编写将 Cloud Storage 请求限制为特定用户或限制上传大小的授权规则。

Firebase 实时数据库具有类似的功能,称为Firebase 实时数据库规则

验证

了解您的用户是谁是构建应用程序的重要部分,Firebase 身份验证提供了一种易于使用、安全且仅限客户端的身份验证解决方案。 Cloud Storage 的 Firebase 安全规则与 Firebase 身份验证相关联,以实现基于用户的安全性。当用户通过 Firebase 身份验证时,云存储安全规则中的request.auth变量将成为一个对象,其中包含用户的唯一 ID ( request.auth.uid ) 和令牌 ( request.auth.token ) 中的所有其他用户信息.当用户未通过身份验证时, request.authnull 。这使您可以安全地控制每个用户的数据访问。您可以在身份验证部分了解更多信息。

授权

识别您的用户只是安全的一部分。一旦您知道他们是谁,您就需要一种方法来控制他们对 Cloud Storage 中文件的访问。

Cloud Storage 允许您指定驻留在我们服务器上的每个文件和每个路径的授权规则,并确定对您应用中文件的访问权限。例如,默认的云存储安全规则需要 Firebase 身份验证才能对所有文件执行任何readwrite操作:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

您可以通过在Firebase 控制台中选择 Firebase 应用并查看“存储”部分的Rules选项卡来编辑这些规则。

数据验证

Cloud Storage 的 Firebase 安全规则也可用于数据验证,包括验证文件名和路径以及文件元数据属性,例如contentTypesize

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

下一步

  • 开始为您的 Cloud Storage 存储分区规划规则开发。

  • 详细了解如何使用安全规则保护您的数据