예를 들어, 사용자가 자신이 example@gmail.com으로 가입했다고 생각했지만 실제로는 example@yahoo.com으로 가입했다고 가정해 보겠습니다. 사용자는 example@gmail.com이라는 이메일 주소를 제공하며 비밀번호 재설정을 시도하겠지만, 해당 이메일 주소로 된 계정은 존재하지 않습니다.
ted@discourse.org 계정에 해당한다면, 곧 비밀번호 재설정 방법에 대한 지시 사항이 포함된 이메일을 받게 됩니다.
이 경우 사용자가 단순히 이메일을 받지 못한다면, 잘못된 이메일 주소를 제공했다는 사실을 알 수 없고, 언제 다른 이메일 주소로 다시 시도해야 하는지(또는 시도해야 하는지) 알 수 없습니다.
대신, 메시지는 단순히 "곧 비밀번호 재설정 방법에 대한 지시 사항이 포함된 이메일을 받게 됩니다"라고만 표시하고, 사용자는 "누군가가 example@gmail.com에 대한 비밀번호 재설정을 요청했지만, 해당 이메일 주소로 된 계정은 없습니다."라는 설명이 담긴 이메일을 받아야 합니다.
이 방법은 누구나 계정 열거(account enumeration)를 수행하는 것을 허용하지는 않지만, 사용자가 잘못된 이메일 주소를 제출했음을 알 수 있게 하고 다른 이메일 주소를 시도할 수 있게 해 줍니다.
공격자는 이미 새로운 계정을 등록하는 것만으로 이를 수행할 수 있습니다. 공격자가 10만 개의 이메일 주소를 알고 있다면, 10만 개의 계정을 등록할 수 있으며, Discourse는 각 사용자에게 활성화 이메일을 보내게 됩니다. 이 경우 각 사용자는 해당 이메일을 스팸으로 신고할 수 있습니다.
존재하지 않는 계정의 이메일 주소로 "비밀번호를 재설정할 수 없으며, 해당 계정은 존재하지 않습니다"라는 이메일을 보내는 것은 이러한 공격을 더 쉽게 만들거나 더 어렵게 만들지 않습니다.
이 공격은 대부분의 사이트에는 문제가 되지 않지만, 이를 우려하고 있다면 공격자의 비용을 증가시키는 Discourse hCaptcha 플러그인을 사용하는 것이 좋습니다. (Meta는 이를 사용하지 않으며, Discourse가 호스팅하는 대부분의 포럼도 이를 사용하지 않습니다.)
Discourse가 제 제안, 즉 존재하지 않는 계정의 이메일 주소로 "비밀번호를 재설정할 수 없으며, 해당 계정은 존재하지 않습니다"라는 이메일을 보내기 시작하는 것을 수용한다면, hCaptcha 플러그인이 가입 양식뿐만 아니라 비밀번호 재설정 양식에서도 작동하는 것이 합리적일 것입니다. (저는 여전히 hCaptcha를 필요로 하거나 사용하지 않을 것입니다.)