在数据库中存储SMTP设置

4

我正在使用Google的SMTP服务器从多个网站发送电子邮件。 Gmail帐户的密码未加密和/或存储在数据库中,而是硬编码在处理电子邮件表单的文件中。这种方法是否存在安全风险?我应该为每个站点创建新的Gmail帐户,还是仅将密码存储在数据库中就足够了?


一个文件并不比数据库本质上更或者更少安全。 - user557846
如果文件托管在“web”文件夹中,而Apache崩溃,则PHP页面将以明文形式显示,因此密码将可见。 - zeflex
1
如果Apache崩溃了,就无法提供任何服务。 - user557846
@zeflex,是的。文件在网页文件夹中。 - paperstreet7
在这种情况下,@Dagon是指phpfpm吗? - zeflex
1个回答

6
在明文中存储敏感数据从来都不是一个好的做法,但是大多数PHP网站在某个地方硬编码存储其电子邮件服务器数据。然而,我永远不会在PHP文件中硬编码完整的Google身份(可能包括连接的AdWords付款信息等)密码。Google有一个相关功能,下面会详细介绍。理论上,你可以将密码存储在数据库中并像这里所讨论的那样进行加密以提供另一层安全性,但正确地执行并不容易。至少应该将相关的PHP文件存储在Web根目录之外,这样即使PHP解释器失败(或.php文件在配置中与解释器解除关联),该文件也不会暴露给世界。此外还有Google的应用程序专用密码功能,它将限制恶意用户访问密码所造成的损害。在遭受入侵或滥用时,你还可以停用应用程序专用密码,而无需摧毁整个帐户。这两个措施可能已经为你的情况提供了合理的安全保障。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接