【问题标题】:How secure is it to access a database in Laravel without API key provided?在没有提供 API 密钥的情况下访问 Laravel 中的数据库有多安全?
【发布时间】: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 方面的专业知识,请不要犹豫,提供您的反馈。

【问题讨论】:

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

标签: php mysql laravel web-applications data-security


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-12-25
    • 2013-06-19
    • 2019-08-06
    • 1970-01-01
    • 2014-02-20
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    相关资源
    最近更新 更多