我已经实现了一个例程,当用户提交表单时,一封电子邮件会发送给管理员。为此,我使用了Java Mail API。我在Microsoft Outlook上设置了一个虚拟帐户来发送电子邮件。在代码中,我已经对密码进行了硬编码。我担心这将是一个安全问题,当我主持的网页。在Java Web应用程序中存储密码变量的不同方法?
这是我的代码。
我写了一个私有函数:
private void getSession(){
this.session = Session.getDefaultInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication
getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]", "xxxxx_password_xxx");
}
});
}
在我的公开方法我称之为getSession()
方法和产生的消息。
public String execute() throws Exception {
getSession();
Message message = new MimeMessage(this.session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("[email protected]"));
message.setSubject("Form submit notification");
//...
}
当我主持网页时,在会话方法中硬编码密码是否安全?
如果没有,那么一些指针来实现替代方案。
谢谢!
可能的重复检查http://stackoverflow.com/questions/8195099/java-how-to-store-password-used-in-application – SoftwareCarpenter 2014-09-21 22:32:02
可以从可执行文件中获取字符串列表。因此,任何访问该文件的人都可以获取这些字符串并猜测密码。 – cliff2310 2014-09-21 22:47:34