Каков хороший подход для / забытого маршрута для ответа? - PullRequest
0 голосов
/ 19 июня 2019

Итак, когда вы отвечаете (на стороне сервера) на маршрут /forgot-password, что является лучшим ответом на него? (В ситуации, когда вы не хотите показывать, какие пользователи у вас есть в БД, и все же намекаете приложению, что пользователь не существует)

Сегодня я столкнулся с этим сценарием, в котором я отвечаю по этому маршруту с 200, но мой коллега, который работает над его приложением, хотел, чтобы я отправил сообщение об ошибке, чтобы он мог реализовать форму восстановления SMS.

Представьте себе это:

POST /forget-password
Body: { username: 'test' }

И вы отвечаете 404/400 и сообщением об ошибке вроде:

{
 statusCode: 404,
 message: 'User not found'
}

Это хорошая практика? Или нет?

Почему я спрашиваю это? Когда вы отвечаете клиенту с 404, вы указываете, какие имена пользователей есть в вашей базе данных, и это может быть брешей в безопасности.

Каков наилучший подход и почему?

По-моему, я предполагаю, что вы должны ответить 200, в любом случае, чтобы не допустить каких-либо сценариев для клиента.

1 Ответ

0 голосов
/ 19 июня 2019

Вы правильно поняли в начале.Вы должны вернуть HTTP 200. Это сделано для того, чтобы кто-то не мог пройтись по циклу с разными именами пользователей, чтобы выяснить, кто существует и т. Д.

Обычно я принимаю все, что они вставили, а затем отправляю по электронной почте предоставленную информацию либо«извините, эта учетная запись не существует, создайте ее здесь» или «вот ваша ссылка для сброса пароля».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...