Http 当资源为';有空吗?

Http 当资源为';有空吗?,http,web,server,Http,Web,Server,假设我们正在构建一个“忘记密码”页面,用户需要在其中输入其电子邮件id。如果电子邮件id与数据库中的任何记录不匹配,该怎么办?我们还是应该回复200吗?是的,还是回复200好的 出于安全原因,最好不要提供数据库中不存在电子邮件的信息。最好只返回不正确凭据的信息。攻击者没有电子邮件帐户是否存在的信息 API的情况会有所不同。在这种情况下,会有很好的返回响应401 Unauthorized,带有消息“increct credentials”,以便更好地捕获客户端应用程序。因此,在深入研究这一点之后,

假设我们正在构建一个“忘记密码”页面,用户需要在其中输入其电子邮件id。如果电子邮件id与数据库中的任何记录不匹配,该怎么办?我们还是应该回复200吗?

是的,还是回复200好的

出于安全原因,最好不要提供数据库中不存在电子邮件的信息。最好只返回不正确凭据的信息。攻击者没有电子邮件帐户是否存在的信息


API的情况会有所不同。在这种情况下,会有很好的返回响应401 Unauthorized,带有消息“increct credentials”,以便更好地捕获客户端应用程序。

因此,在深入研究这一点之后,我觉得我仍然应该使用200进行响应,因为请求和请求参数没有问题。这仍然是一个有效的请求

还值得注意的是,当用户试图访问不属于它的资源时,使用401进行响应是完全有意义的


这(“密码重置”或“检查用户名可用性”)不是401方案。200似乎很好。

实际上我并没有完全满足您的要求,您的要求是什么?如果你想回复200,那么这样做,否则我们也可以显示一些自定义消息。这取决于用户的要求。我不会告诉他们任何事情,如果你这样做,有人可以猜测电子邮件地址,当他没有得到错误响应时,他有两部分密钥中的一部分,另一部分是密码