在没有提供 API 密钥的情况下访问 Laravel 中的数据库有多安全?

Posted

技术标签:

【中文标题】在没有提供 API 密钥的情况下访问 Laravel 中的数据库有多安全?【英文标题】:How secure is it to access a database in Laravel without API key provided? 【发布时间】:2018-12-25 08:07:10 【问题描述】:

先决条件:

php:5,Laravel:5.1,mysql:innodb 5.6.34。

问题:

我们构建了一个带有单一端点“测试”的 Web API。现在应该添加另一个端点(“健康”) - 这个端点用作 API 的健康指示器:当我们调用 test.api.com/health? 时,相应的控制器应该直接连接到DB 并向用户发送两种状态作为响应:API 状态和 DB 状态(数据在那里,DB 处于活动状态,一切都很好)。

问题:

在没有身份验证中间件的情况下制作这样的控制器有多安全?或者换句话说:在没有 api 密钥的情况下调用连接到数据库的端点有多安全?

注意,该框架在未来可能会更改 - 可能会更改为 Python 的 Flask 以及 DB - 更改为 PostgreSQL。因此,即使您不具备 Laravel 或 MySQL 方面的专业知识,请不要犹豫,提供您的反馈。

【问题讨论】:

为什么会有问题? *** 不需要身份验证,你认为他们没有调用数据库吗? 控制器是调用数据库的那个,这是你的代码,其他人应该不能直接访问。大概您已就可以与未经身份验证的用户共享哪些信息做出了明智的决定,并且您不再共享任何内容。 感谢 cmets @apokryfos 和 Devon - 虽然很明显,但对我来说并不是那么明显。 【参考方案1】:

你不应该有这个问题。您没有接受用户输入,因此如果您是这样想的,那么您就不容易出现任何 sql 漏洞。您可能希望将响应缓存几秒钟,以免影响数据库服务器。 API 上的速率限制器(可选)可能是个好主意。

【讨论】:

以上是关于在没有提供 API 密钥的情况下访问 Laravel 中的数据库有多安全?的主要内容,如果未能解决你的问题,请参考以下文章

使用没有用户名和密码的 api 密钥访问 JIRA API

在没有 OAuth 的情况下为自己的帐户使用 Google API

在没有 Firebase 的情况下管理 GCM 的 API 密钥?

如何在没有弹簧安全的情况下使用 api 密钥保护 rest api

Firebase Crashlytics 在没有 Fabric API 密钥的情况下无法工作

使用没有API密钥的谷歌地图?