存储第三方服务的密码

Soo*_*uNe 8 security encryption ruby-on-rails ruby-on-rails-3

我的应用程序是ruby-on-rails,但我希望这个问题的任何答案都可能与框架无关.

我的应用程序使用rails ActionMailers a-la通过gmail SMTP发送电子邮件:

mail = MyActionMailerSubclass.setup_email

options = { :address          => "smtp.gmail.com",
        :port                 => 587,
        :domain               => 'mydomain.com',
        :user_name            => 'myuser@mydomain.com',
        :password             => 's3cur3p@s$w0rd',
        :authentication       => 'plain',
        :enable_starttls_auto => true  }

mail.delivery_method :smtp, options
mail.deliver
Run Code Online (Sandbox Code Playgroud)

好的,那很好......我的应用程序代码中的纯文本密码是gq.或者我可以用纯文本将其存储在数据库中.显然两者都是不可接受的.

Salting和hashing,通常的技术不会在这里工作,因为我需要将密码发送到gmail.

那么,为第三方服务保护密码有哪些策略?

最终用户名和密码甚至不属于我,它们将属于应用程序最终用户.

Rya*_*igg 0

如果应用程序是私有的,那么这应该不用担心,但我猜它是针对公共/开源应用程序的。

如果是这种情况,请添加该文件的基本示例作为config/initializers/mail.rb.example并将实际内容添加到您的.gitignore文件中,以便永远不会提交它。之后,在自述文件中添加说明,人们需要将mail.rb.example文件复制到mail.rb以便应用程序按预期工作。