在开发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/