使用 403 响应还是 404 更好?
Is it better to use a 403 response or 404?
我有一个 restAPI,它允许用户提交要保存在我的数据库中的数据。提交数据时,他们的用户 ID 将从请求 header 中获取并添加到文档中
在我的 collection (mongoDB) 中有一个正常的 _id
字段和一个引用用户的 userID
字段。
我的问题是在恶意用户向不属于他们的文档提交 PUT 或 DELETE 请求的情况下,最好的处理方式是什么。
我仅使用提交的 _id
从数据库中提取预测,根据请求 userID
检查 userID
字段,如果他们发出 403 响应不匹配。
我通过_id
和userID
查询数据库,所以如果文档不属于请求用户,就不会找到。然后我会发出 404 响应,就像他们提交了一个不存在的 ID 一样。
两种选择的目的相同,都是为了防止用户编辑或删除不属于自己的资源,但哪个“更好”?
404是“未找到”,显然不是这样。
使用 403。
引用自Wikipedia:
HTTP 403 is returned when the client is not permitted access to the resource despite providing authentication ...
我有一个 restAPI,它允许用户提交要保存在我的数据库中的数据。提交数据时,他们的用户 ID 将从请求 header 中获取并添加到文档中
在我的 collection (mongoDB) 中有一个正常的 _id
字段和一个引用用户的 userID
字段。
我的问题是在恶意用户向不属于他们的文档提交 PUT 或 DELETE 请求的情况下,最好的处理方式是什么。
我仅使用提交的
_id
从数据库中提取预测,根据请求userID
检查userID
字段,如果他们发出 403 响应不匹配。我通过
_id
和userID
查询数据库,所以如果文档不属于请求用户,就不会找到。然后我会发出 404 响应,就像他们提交了一个不存在的 ID 一样。
两种选择的目的相同,都是为了防止用户编辑或删除不属于自己的资源,但哪个“更好”?
404是“未找到”,显然不是这样。
使用 403。
引用自Wikipedia:
HTTP 403 is returned when the client is not permitted access to the resource despite providing authentication ...