簡體   English   中英

通過(穩定)Web服務發送郵件的安全方式

[英]Secure way to send a mail via a (Restful) Webservice

我有一個帶有Java后端的AngularJS Web應用程序。

現在我想從Angular Application發送郵件。 我認為最好的方法是將帖子發送或獲取請求到Web服務,並通過內部smtp服務器將郵件發送給收件人。

但是我認為這個概念存在很大的安全性問題。 當我創建一個Web服務呼叫時,例如:/ /api/mail?mailto=john@doe.com有人可以獲取該Web服務的鏈接,更改接收者,並使用此鏈接開始向其他人發送垃圾郵件。

有人知道這種體系結構通過Web服務發送郵件的安全方法嗎? 我必須將收件人傳遞給郵件服務,因為用戶在AngularJS UI中進行了設置。

我對任何建議都很滿意。

這是您應采取的安全措施,以保護您的Rest API。 REST安全備忘單這是您應該為其余API采取的安全措施的列表。

如果您使用spring-security,那么大部分內容都將涵蓋其中。

使用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后端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM