【问题标题】:Secure way of storing 3rd party databases/APIs credentials through Laravel通过 Laravel 存储 3rd 方数据库/API 凭证的安全方式
【发布时间】:2019-10-12 10:19:50
【问题描述】:

我正在开发一个 Laravel 应用程序,它应该允许用户手动添加集成到 3rd 方 API 和数据库。使用 API 很简单:您只需要存储令牌。但用户还应该能够添加与他们自己的数据库(如 MySQL)的集成。为此,我需要存储主机、用户、密码,基本上是所有凭据。我遇到的问题是找到一种适当且安全的方式来存储这些凭据。

我正在考虑将所有连接存储在 connections 表中,将凭据添加到 connection_parameters JSON 类型字段(因此会有灵活性,并且可以将不同类型的连接存储在同一个表中)和使用模型上的$hidden 属性隐藏详细信息。这将是迈向安全存储它们的第一步,但我不确定这是否足够。

您有什么建议或做法可以向我解释吗?

【问题讨论】:

    标签: mysql laravel authentication


    【解决方案1】:

    我知道您主要关心的是向第三方隐藏敏感数据。除非有人以某种方式访问​​您的数据库,否则您正在做的事情已经“可以”。您可能希望像对待用户密码一样对待这些字段,因为它们也包含凭据。

    一种方法是在存储之前对其进行加密。 Laravel 提供开箱即用的加密/解密https://laravel.com/docs/5.8/encryption

    另一种解决方案是将每个用户的凭据存储在一个文件中,并将该文件存储在除公共目录之外的任何目录中(例如:/storage/connections)。这样,只有您可以访问这些文件。每个文件都可以命名为 user_1234 1234 之类的用户 ID。所以很容易找回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      相关资源
      最近更新 更多