node.js - /forgot 路由响应的好方法是什么?
问题描述
因此,当您响应(服务器端)/forgot-password
路由时,对它的最佳响应是什么?(在您不想公开您在数据库中拥有的用户并仍然提示应用程序该用户不存在的情况下)
今天我遇到了这种情况,我在该路线上回复 200,但我正在开发他的应用程序的同事希望我发送一个错误,以便他可以实施 SMS 恢复表单。
想象一下:
POST /forget-password
Body: { username: 'test' }
你用 404/400 和如下错误消息响应:
{
statusCode: 404,
message: 'User not found'
}
这是一个好习惯吗?或不?
我为什么要问这个?当您使用 404 响应客户端时,您会暴露您在数据库中拥有的用户名,这可能是安全漏洞。
什么是最好的方法,为什么?
在我看来,我猜你应该用 200 回应,在任何一种情况下,不要让任何类型的场景给客户。
解决方案
你一开始就说对了。您应该返回一个 HTTP 200。这是为了防止有人使用各种用户名进行循环以找出谁存在等。
我通常做的是接受他们输入的任何内容,然后通过电子邮件将提供的信息发送给“抱歉,该帐户不存在,请在此处创建一个”或“这是您重置密码的链接”。
推荐阅读
- javascript - 为什么 Enter 键不适用于 selectpicker
- php - 为什么我的 PHP 脚本在我的 html 中不起作用?(我使用codeigniter框架)
- angular - NgModal 不显示在 Angular 项目中
- opengl-es - 删除未使用的变量会导致着色器不绘制任何东西
- android - 两个安卓应用如何同时录制?
- sql - 使用增量记录创建基于 SQL 查询的每日报告
- java - 错误代码:1052。字段列表中的列 'seq_no' 不明确
- azure - 将批处理任务输出持久化到存储帐户
- delphi - 自定义按钮,带有 PopupMenu 的 OnClick
- javascript - 为什么记录命名的 IIFE 而不是同名的变量?