Password reset confirm message should discourage social engineering

The password reset logic confirms whether en email exists in the user database. This is generally considered bad practice as it enables malicious users to “query” discourse user db. DigitalOcean is a good example of being vague about the provided email, “if the email you specified exists in our system, we’ve sent a password reset link to it”

2개의 좋아요

If you want this, enable it in site settings. Already exists.

By default we tell people since they can never remember which of their 10 email addresses they signed up with, so it is user hostile to force them to walk through all 10 emails to figure out which one they used on your site.

5개의 좋아요

The signup form already gives away if an email address already exists (and turning that off doesn’t make sense) so it doesn’t really matter here, it doesn’t make that attack vector go away and it only makes things harder for users who actually forgot their password (or: forgot their email address)

6개의 좋아요

@codinghorror thanks I didn’t know there’s a setting for it
@michaeld yes, it is true that the sign up form confirms for the existence of an email but one can reduce the email visibility by integrating Discourse with external identity providers or creating a custom sign up form with CAPTCHA.

There are already rate limits on these forms, try it yourself.

아마도 오래된 게시글인 것 같지만, 혹시 다른 분들도 이 문제를 겪고 커뮤니티 기존 회원들의 이메일 주소를 유출당할까 봐 걱정하고 계신다면, discourse에서 이를 해결하기 위한 간단한 수정 사항을 적용한 것 같습니다. 설정에서 "hide email address taken"를 검색하여 활성화하세요. 이렇게 하면 사용자가 “비밀번호 찾기” 기능을 통해 서버에서 이메일 주소를 조회하는 것을 방지할 수 있습니다.

1개의 좋아요

이것을 연결하기 위해, 이 주제의 일부로 이 커밋에 추가되었습니다 - Hide 'email account exists' for invites :partying_face:

아니요, 제가 주의를 기울이지 못했습니다. :slight_smile: 그것은 해당 설정을 초대 화면까지 확장하기 위한 것이었습니다. 그래도 언급하게 되어 기쁜, 흥미로운 추가 사항입니다. :slight_smile:

Email enumeration vulnerability on "Password Reset" dialogue 문제로 인해 닫았습니다