我正在使用Google的smtp服务器从多个站点发送电子邮件。gmail帐户的密码未加密和/或存储在数据库中,而是硬编码在处理电子邮件表单的文件中。这种方法是否存在安全风险?我应该为每个站点创建一个新的Gmail帐户,还是仅将密码存储在数据库中就足够了?
以明文形式存储敏感数据从来都不是一个好习惯,但是,大多数PHP网站将以明文形式硬编码的电子邮件服务器数据存储在某个地方。不过,我永远不会将密码硬编码为一个完整的Google身份(可能带有关联的AdWords付款信息等)在PHP文件中。Google为此提供了一项功能,请参见下文。
从理论上讲,您可以将密码存储在数据库中,并按照此处为另一层安全性所讨论的那样对它们进行加密,但是这样做并不容易。
您至少应该将有问题的PHP文件存储在Web根目录之外。这样,即使PHP解释器失败(或.php文件与配置中的解释器解除关联),该文件也无法公开。
还有Google的“ 应用专用密码”功能。这将限制由恶意访问密码的人造成的损害。万一闯入或滥用,您还可以停用特定于应用程序的密码,而无需取消整个帐户。
这两种措施可能已经为您的情况提供了合理的安全性。