如何安全地将密码保存在环境文件中-Laravel

时间:2018-08-29 02:31:14

标签: laravel

环境文件中SMPT配置的示例

MAIL_DRIVER=smtp
MAIL_HOST=smtp.XXX.net
MAIL_PORT=587
MAIL_USERNAME=xxx_username
MAIL_PASSWORD=xxx_password

在项目中,我将API令牌或密码保存在env文件中。 但这不是安全解决方案。因为每个人都可以触摸我的密码。 什么是保存密码的安全解决方案?

编辑:

也许邮件配置不是一个很好的例子。

问题全是密码或API密钥,而不仅限于电子邮件密码。 例如。数据库API,支付网关API等

问题出在某些用户身上,也许服务器维护团队可以通过FTP或服务器字体登录到服务器。如何阻止这些团队查看密码或API密钥。

2 个答案:

答案 0 :(得分:0)

  

在项目中,我将API令牌或密码保存在env文件中。但这不是安全解决方案。因为每个人都可以触摸我的密码。什么是保存密码的安全解决方案?

首先,如果您通过git repo共享代码,则没有人会使用您的密码,因为.env文件未添加到该repo ...中,每个开发人员都必须添加自己的.env文件。也许每个人都可以为此拥有自己的配置,所以这将是安全的。

除非您以其他方式共享代码...或者担心在这种情况下将其投入生产,否则您不应使用自己的电子邮件...发送的每封邮件都会发送到垃圾。

我不建议从您自己的电子邮件中发送电子邮件。

检查带有免费层的服务,例如:sparkpost,sendgrid,mailgun等。

laravel推荐使用的是sparkpost和mailgun。

https://laravel.com/docs/5.6/mail

  

Laravel通过流行的SwiftMailer库提供了一个干净,简单的API,并带有SMTP,Mailgun,SparkPost,Amazon SES,PHP的邮件功能和sendmail的驱动程序,使您可以快速开始通过本地或基于云的服务发送邮件您的选择。

或者,或者创建一个您不希望与他人共享的新的特定电子邮件帐户...

另外,对于开发人员,您可以只使用Log驱动程序,该驱动程序将仅记录电子邮件而不是实际发送电子邮件。

答案 1 :(得分:0)

如果您使用的是Gmail,则可以使用Google的“应用密码”功能。只需创建应用密码并在您的应用中使用即可。您可以为应用创建多个密码。 https://support.google.com/accounts/answer/185833?hl=en