在开发Rails应用程序时,安全是至关重要的。这就是为什么我们需要使用凭据。凭据是包含敏感信息(如密码、API密钥等)的文件。在开发时,我们经常使用.env文件来存储这些凭据。但是,这种方法存在一些问题。例如,.env文件经常被包含在版本控制系统中,这意味着凭据可能被第三方访问。为了解决这个问题,我们可以使用Rails凭据。

Rails凭据是Rails 5.2中引入的新功能。它们允许您将凭据存储在加密的YAML文件中,并且默认情况下不包含在版本控制系统中。使用Rails凭据,您可以轻松地保护应用程序中的敏感信息。在本文中,我们将讨论如何在Rails应用程序中使用自定义凭据,并通过使用Rails凭据替换.env文件来实现更高级别的安全。

步骤1:创建Rails凭据

要创建Rails凭据,请运行以下命令:

rails credentials:edit

这将打开您的默认文本编辑器,并为您创建一个新的凭据文件。如果您是第一次运行该命令,您将看到以下内容:

# aws:

# access_key_id: 123

# secret_access_key: 345

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.

secret_key_base: abcd1234

在这个文件中,您可以存储任何敏感信息,但建议您将其分层和组织成易于查找和管理的结构。例如,如果您正在构建一个电子商务网站,您可以使用以下结构:

production:

stripe:

api_key: stripe_production_api_key

publishable_key: stripe_production_publishable_key

paypal:

api_key: paypal_production_api_key

api_secret: paypal_production_api_secret

development:

stripe:

api_key: stripe_development_api_key

publishable_key: stripe_development_publishable_key

paypal:

api_key: paypal_development_api_key

api_secret: paypal_development_api_secret

在上面的例子中,我们使用了不同的环境(生产和开发),并将Stripe和PayPal凭据组织在一起。这使得管理凭据变得更加简单。

请注意,您可以使用任何适合您的格式和结构存储凭据。但是,由于Rails凭据文件是加密的,这样可以确保您的敏感信息保持安全。

步骤2:在应用程序中使用Rails凭据

现在我们已经创建了Rails凭据,让我们看看如何在应用程序中使用它们。

要访问Rails凭据,请运行以下命令:

Rails.application.credentials.stripe[:api_key]

在这个例子中,我们正在使用Rails凭据中的Stripe API密钥。请注意,我们使用哈希符号(:)来访问Stripe哈希,并使用方括号([])来访问API密钥。

如果您想使用多个凭据文件,请使用以下语法:

Rails.application.credentials[:aws][:access_key_id]

在这个例子中,我们正在使用Rails凭据中的AWS凭据文件,并获取访问密钥。请注意,我们使用方括号([])访问aws哈希,并使用冒号(:)访问访问密钥。

步骤3:用Rails凭据替换.env文件

现在我们已经知道如何使用Rails凭据,在第三步中,我们将替换.env文件以实现更高级别的安全。

要实现这一点,请按照以下步骤操作:

1. 删除.env文件;

2. 创建新的Rails凭据文件(如果尚未创建);

3. 将您的凭据移动到Rails凭据文件中;

4. 在您的代码中使用Rails凭据;

5. 重启应用程序。

使用上述步骤,您可以将凭据存储在加密的文件中,而不必担心它们被未经授权的人访问。

结论

在开发Rails应用程序时,保护敏感信息至关重要。通过使用Rails凭据,您可以随时随地轻松地存储和访问敏感信息,同时确保其安全和保密。在本文中,我们讨论了如何在Rails应用程序中使用自定义凭据,并通过使用Rails凭据替换.env文件来实现更高级别的安全。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/