문제

이 질문은 아마도 이전에 묻었지만, 답을 찾을 수있을만큼 내 검색을 올바르게 표현할 수없는 것 같습니다.

일반적으로 인터넷에서 포럼에 액세스하기 위해 가입하면 승인 이메일이 전송되며 승인을 수행하는 페이지로 연결되는 링크를 클릭 할 수 있습니다.

내가 원하는 것은 이미 생성 된 사용자에게 메일을 보내고 (로그인하지 않은) 메일의 링크를 클릭하여 제안서를 수락하도록하는 것입니다. 코스 링크는 데이터베이스 작업을 수행하고 어떤 종류의 결과를 보여주는 페이지를 가리 킵니다.

이것을 구현하기 위해 어떤 기술 및/또는 경로를 취해야합니까? 그리고 이것은 보안 관련이므로 무엇을 조심해야합니까?

친절한 안부, 캐스퍼

도움이 되었습니까?

해결책

이메일을 보낼 때 큰 무작위 문자열을 생성하고 사용자 ID와 링크가 무엇을 할 것인지에 대한 표시로 테이블에 저장하십시오.

그런 다음 링크와 함께 이메일을 보내십시오 DoSomething.aspx?id=long_string_here.

쓰다 DoSomething.aspx 긴 문자열을 찾아서 사용자에게 자신이 할 일을 확인하고 수행 할 버튼을 제공합니다. 로깅이 필요하지 않습니다. 원하는 경우 사용자를 로그인 할 수도 있습니다.

작업이 완료되거나 X 일마다 테이블에서 문자열을 삭제하십시오.

우려 :

  1. 나쁜 사람들은 임의의 문자열로 페이지를 치려고 할 수 있습니다. 문자열이 충분히 길고 무작위 인 경우, 이것은 중요하지 않지만, 페이지에 액세스하거나 주어진 기간에 IP 주소에서 X보다 더 많은 X 요청을 방지 할 수 있습니다.
  2. 공격적인 스팸 확인자는 이메일 본문의 링크를 따라갈 수 있습니다. 페이지에 액세스하여 단순히 작업이 수행되지 않도록하십시오. 사용자는 버튼을 클릭하거나 게시물을 일으켜야합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top