2016-09-14 5 views
0

나는 메시징 시스템을 가진 플랫폼을 구축하고있다.확인 요청 기원과 확인 이메일 발송 - Node.js를

나는 이메일 메시지를 게시하고자하는, 그리고 그것을 위해 나는 나의 API에 이메일을 리디렉션 Mailgun에 경로를 만들었습니다.

이 부분은 작동하고 있지만, 사실은 내 플랫폼에 메시지를 게시하기 전에 요청의 유효성을 검사해야합니다. 내가 보낸 사람의 이메일 메시지의 저자와 메시지가 나타납니다 프로파일 그룹을 선택하는 이메일의 대상에 대해 내 데이터베이스에 찾아 볼 수 있습니다. 그래서

, 예 : 내가 만약 그렇다면 내 데이터베이스에 "[email protected]"를 확인하고 그에게 "그룹"을 게시 할 수 있는지와 것

from: [email protected] 
to: [email protected] 
message: Lorem ipsum dolor sit amet, consectetur adipiscing elit... 

이메일을받은 경우 I 메시지를 게시합니다. 내 API에 대한 요청이 정말 전자 메일의 보낸 사람이 확실하면 스푸핑에게

  • 확인을 방지하기 위해, Mailgun에서 온 경우

    • :

      문제가

      , 나는 두 가지를 확인해야합니다

  • 이 작업을 수행하지 스팸 먼저 나는 원점을 얻기 위해 노드에 req.connection.remoteAddress를 사용할 수 있다고보고, 그때에 역방향 조회를하려고 노력 IP를보고 Mailgun에서 왔는지 확인하지만 역방향 조회는 아무 것도 발견하지 못했습니다.

    내가 이메일에 받은 헤더를 사용할 수있는 것을보고 이메일 출처를 확인하려면 다음 나는 DNS 조회로를 확인하고 MX 레코드가 일치하는지에 대해 생각했다.

    나는이 정말 새로운 오전, 내 질문은이 두 단계를 확인하는 쉬운 방법이 있으며 모든 안전입니까?

    답변

    0

    는 Mailgun 대시 보드에서 도메인을 설정할 때 활성화 할 수있는 "인바운드 스팸 필터"체크 박스가있다.

    는 Mailgun 워드 프로세서의 "확보 Webhooks"절에서는 스푸핑을 방지하기 위해 참조하십시오.

    • 연결하여 타임 스탬프 토큰 값 :

      https://documentation.mailgun.com/user_manual.html#webhooks

      는 당신이 필요로하는은 webhook이 Mailgun에서 발생되어 있는지 확인합니다.
    • 인코딩 (모드 키로 API 키를 사용하여 SHA256 다이제스트)를 HMAC 알고리즘 결과 문자열.
    • 는 서명 결과 hexdigest 비교.
    • 선택적으로, 토큰 값을 로컬로 캐시 할 수 있으며 동일한 토큰을 가진 후속 요청을 존중하지 않을 수 있습니다. 이렇게하면 재생 공격을 막을 수 있습니다. 타임 스탬프가 너무 멀리 현재 시간에서가 아닌 경우
    • 선택적으로, 당신은 확인할 수 있습니다.