【发布时间】:2014-09-19 00:26:08
【问题描述】:
我有一个在 GlassFish 4 / Java 8 (x64) 上运行的 Java EE 应用程序。开发是在 Windows 机器上进行的,但最终会移植到 Linux(Red Hat 或 Ubuntu)。在该应用程序中,我需要从需要用户身份验证的 SMTP 服务器发送电子邮件消息,并且我正在使用 JavaMail 执行连接并发送电子邮件消息。这些电子邮件是在成功的用户注册、密码重置请求等期间代表系统发送的。因此,启动操作的用户将没有发送电子邮件的凭据。所有此类操作都使用相同的电子邮件凭据,并且相关电子邮件帐户专用于此用途。
立即想到的方法是将发送电子邮件帐户的用户名和明文密码存储在数据库或其他一些数据存储中,或者在 Java EE 应用程序中硬编码用户名和明文密码。这具有明显的安全风险,通常与明文存储密码相关。
对此有一些变化,我可以将密码的加密版本存储在数据库中或硬编码在应用程序中。那时,我又开始寻找一种存储密钥以解密密码的方法。
有哪些方法可以在 Java EE 中安全地管理此类凭据?我是否坚持以纯文本形式存储它?
【问题讨论】:
标签: java security jakarta-ee smtp jakarta-mail