/ forgot路线做出响应的好方法是什么?

时间:2019-06-19 14:53:35

标签: node.js express

因此,当您在服务器端响应/forgot-password路由时,对它的最佳响应是什么? (在这种情况下,您不想公开数据库中有哪些用户,而仍然提示应用程序该用户不存在)

今天我遇到了这种情况,在这种情况下,我会用200响应,但是正在使用他的应用程序的同事希望我发送错误,以便他可以实施SMS恢复表单。

想象一下:

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

然后您以404/400和错误消息响应:

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

这是一个好习惯吗?或不?

为什么我要问这个?当您使用404响应客户端时,您将暴露数据库中拥有的用户名,这可能是安全漏洞。

什么是最好的方法,为什么?

我认为,无论哪种情况,您都应该以200作为回应,以免让客户遇到任何情况。

1 个答案:

答案 0 :(得分:0)

您一开始就正确。您应该返回一个HTTP200。这是为了防止某人使用各种用户名循环查找谁的存在等。

我通常要做的是接受他们输入的任何内容,然后通过电子邮件发送提供的信息“抱歉,该帐户不存在,在此处创建一个帐户”或“此处是您的密码重置链接”。