我有一个带Java后端的AngularJS Web应用程序。
现在我想从Angular应用程序中发送邮件。我认为最好的方法是发送帖子或获取请求到Web服务并通过内部smtp服务器将邮件发送给收件人。
但我认为这个概念存在很大的安全问题。当我创建一个web服务调用时,如:/api/mail?mailto=john@doe.com
某人可以将链接发送到网络服务,更改收件人并使用此链接开始向其他人发送垃圾邮件。
有人知道这种架构通过网络服务发送邮件的安全方式吗?我必须将收件人传递给邮件服务,因为用户在AngularJS UI中设置了它。
我对任何建议感到高兴。
答案 0 :(得分:0)
以下是您应该采取的安全措施,以确保您的休息api。 REST Security Cheat Sheet 以下是您应为其余API采取的安全措施列表。
如果您使用 spring-security ,大部分内容都将涵盖您。
答案 1 :(得分:0)
使用Mailgun。您可以免费发送10,000封电子邮件,您可以通过Java后端调用API,如下所示:
public static ClientResponse SendSimpleMessage() {
Client client = Client.create();
client.addFilter(new HTTPBasicAuthFilter(
"api","key-3ax6xnjp29jd6fds4gc373sgvjxteol0"));
WebResource webResource = client.resource(
"https://api.mailgun.net/v3/samples.mailgun.org/messages");
MultivaluedMapImpl formData = new MultivaluedMapImpl();
formData.add("from", "Excited User <excited@samples.mailgun.org>");
formData.add("to", "john@doe.com");
formData.add("subject", "Hello");
formData.add("text", "Testing some Mailgun awesomeness!");
return webResource.type(MediaType.APPLICATION_FORM_URLENCODED).
post(ClientResponse.class, formData);
}
这比您的实施更安全。我还会将Angular客户端的电子邮件地址作为POST发送到您的Java后端。