- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Firebase Web-App guide声明我应该将给定的 apiKey
放入我的 Html 中以初始化 Firebase:
// TODO: Replace with your project's customized code snippet
<script src="https://www.gstatic.com/firebasejs/3.0.2/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: '<your-api-key>',
authDomain: '<your-auth-domain>',
databaseURL: '<your-database-url>',
storageBucket: '<your-storage-bucket>'
};
firebase.initializeApp(config);
</script>
通过这样做,apiKey
会向每个访问者公开。
该 key 的用途是什么?它真的应该公开吗?
最佳答案
apiKey
在此配置片段中仅标识 Google 服务器上的 Firebase 项目。某人知道它不会构成安全风险。事实上,他们有必要了解这一点,以便与您的 Firebase 项目进行交互。每个使用 Firebase 作为后端的 iOS 和 Android 应用中也包含相同的配置数据。
从这个意义上说,它与在同一代码段中标识与您的项目关联的后端数据库的数据库 URL 非常相似: https://<app-id>.firebaseio.com
。请参阅此问题以了解为什么这不是安全风险:How to restrict Firebase data modification? ,包括使用 Firebase 的服务器端安全规则来确保只有授权用户才能访问后端服务。
如果您想了解如何确保对 Firebase 后端服务的所有数据访问均已获得授权,请阅读 Firebase security rules 上的文档。 。这些规则控制对文件存储和数据库的访问,并在 Firebase 服务器上强制执行。因此,无论是您的代码,还是使用您配置数据的其他人的代码,它都只能执行安全规则允许其执行的操作。
有关 Firebase 使用这些值的用途以及您可以为其中哪些值设置配额的其他说明,请参阅 using and managing API keys 上的 Firebase 文档.
<小时/>如果您想降低将此配置数据提交到版本控制的风险,请考虑使用 SDK auto-configuration of Firebase Hosting 。虽然 key 最终仍会以相同的格式出现在浏览器中,但它们不会再被硬编码到您的代码中。
<小时/>更新(2021 年 5 月):感谢名为 Firebase App Check 的新功能,现在实际上可以将对 Firebase 项目中的后端服务的访问限制为仅来自在该特定项目中注册的 iOS、Android 和 Web 应用的访问。
您通常希望将其与上述基于用户身份验证的安全性结合起来,这样您就有了另一个屏障,可以防止滥用您的应用的用户。
通过将 App Check 与安全规则相结合,您不仅可以广泛地防止滥用,还可以精细地控制每个用户可以访问的数据,同时仍然允许从客户端应用程序代码直接访问数据库。
关于javascript - 向公众公开 Firebase apiKey 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56508972/
我与服务器所有人共享了我的项目(使用 ApyKey)。现在我想知道是否有可能生成一个新的 ApiKey 所以我知道,我是唯一可以访问我的 Firebase 项目的人? 最佳答案 如果您想要在服务器中使
Tastypie APIKey 认证是如何工作的?我知道文档中提到了一个信号: from django.contrib.auth.models import User from django.d
我想制作一个 java 应用程序。这存储在 gitHub 上(因此使用 git 进行版本控制)。现在这个程序在 Google 的例子中使用了 apikeys。我想在版本控制系统中 stash 此 Ap
这是获取用户帐户及其 Api key 的端点: https://dev.openclinica.com/apidoc/#api-User_Account-getAccountByUserName将以下
我需要获取 apiKey 到 firebase 应用程序。 在文档中,示例是: var config = { apiKey: '', authDomain: '',
我正在为 MagicCardMarket.eu 制作一个小型客户端 Web 应用程序。它只是 javascript 和 html。用户必须使用他的用户名和 apikey 登录,尽管我想知道在 sess
Firebase Web-App guide声明我应该将给定的 apiKey 放入我的 Html 中以初始化 Firebase: // TODO: Replace with your project'
Firebase Web-App guide声明我应该将给定的 apiKey 放入我的 Html 中以初始化 Firebase: // TODO: Replace with your project'
Firebase Web-App guide声明我应该将给定的 apiKey 放入我的 Html 中以初始化 Firebase: // TODO: Replace with your project'
我正在做一个 ASP.NET mvc5 项目。在其中一个页面中,我有一个按钮,我想用它来向跨域 api 发送帖子。 我尝试过使用 ajax 来完成这样的帖子: $.ajax({
Firebase Web-App guide声明我应该将给定的 apiKey 放在我的 Html 中以初始化 Firebase: // TODO: Replace with your project'
我想知道将我的 APIKEY 放入所有 REST 请求中而不必将其添加到请求参数中的最佳方法。 目前我只接到了几个电话,但我想看得更远。 @GET(".") fun getSearch(@Query(
我想创建一个灵活的 API Rest 服务器。我将允许客户端使用 HTTP 或 APIKEY 进行身份验证。 我的问题是:将 apikey 添加到 GET 请求的正确方法是什么?我的问题是 apike
我正在尝试使用 apikey 使用 sendgrid 在 node.js 中启动并运行一个简单的联系表单。目前还不清楚我哪里出错了。 我尝试了以下方法: 1. var options = {
在哪里可以找到我的 Firebase apiKey 和 authDomain? 我正在设置我的环境以连接到我的数据库。 export const environment = { productio
当我尝试通过 laravel 6 中的 sendgrid 发送邮件时出现此错误: Failed to authenticate on SMTP server with username "apikey
我已经设置了一个使用 Firestore 数据库的 Firebase 项目。我得到了以下代码片段,可以在我的 Javascript 代码中使用它: // Your web app's Fire
据此answer ,公开暴露您的 firestore api key 并不存在安全风险,但是,正如该问题的后续答案所指出的那样,人们可以使用它提出过多的请求并耗尽您的配额。 firestore 是否有
这里是 Youtube API 新手。我似乎无法弄清楚如何在运行不需要 oAuth 的查询时设置 APIKey。我也找不到任何例子。 我正在尝试调用 VideoCategories.List像这样使用
这是我的界面: public interface ApiInterface { @GET("solicitation/all") Call getAllNews(@Query("X-Authoriza
我是一名优秀的程序员,十分优秀!