2011-08-03 59 views
0

當在Rails中使用SMTP設置發送電子郵件時,您需要提供用戶名和密碼才能從您的帳戶發送電子郵件。但是,在代碼中以純文本形式將密碼輸入網站的電子郵件帳戶是否有點危險?有沒有更安全的方法來做到這一點?Rails mailer/smtp - 潛在的安全問題?

config.action_mailer.smtp_settings = { 
     :address => "address_here", 
     :port => 'port_#_here', 
     :domain => "example.com", 
     :authentication => :plain, 
     :user_name => "[email protected]", 
     :password => "foobar", 
     :enable_starttls_auto => true 
    } 

回答

1

這可能不是太大的發展環境的問題,因爲您可能使用的是不需要身份驗證或虛擬帳戶某種類型的服務器。

對於生產環境中我所見過的圖案/最常用是保持環境本身例如像內用戶名,密碼信息等:

config.action_mailer.smtp_settings = { 
     :address => "address_here", 
     :port => 'port_#_here', 
     :domain => "example.com", 
     :authentication => :plain, 
     :user_name => ENV['EMAIL_USERNAME'], 
     :password => ENV['EMAIL_PASSWORD'], 
     :enable_starttls_auto => true 
    } 

這樣,攻擊者將能夠訪問你的生產箱本身爲了得到這個信息。例如,如果您將應用程序部署到Heroku,並使用Sendgrid插件爲您發送電子郵件 - 插件將使您遵循該模式。