当用户可以访问 url 但不能查询参数时,使用什么 https 状态代码?

发布于 2024-11-01 03:41:04 字数 391 浏览 2 评论 0原文

美好的一天,

当请求者可以访问该 url 但查询参数不正确时,应该使用什么 http 状态代码。

让我们这样说:

作为用户 100,我可以访问 http://example.com/bankaccount/ get?id=100

但是,我不应该能够看到其他用户的银行帐户,比如说通过 http://example.com/bankaccount/get?id=200

应使用哪种 HTTP 状态代码?

Good day,

What http status code should be used when the requester has access to that url but had improper query parameters.

Let's say something like this:

As user 100, I can access http://example.com/bankaccount/get?id=100

However, I should not be able to see the bank account of another user, let's say via http://example.com/bankaccount/get?id=200 .

Which HTTP Status code should be used?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不打扰别人 2024-11-08 03:41:04

如果禁止访问,则返回403

服务器理解该请求,但拒绝满足它。 [...] 如果请求方法不是 HEAD 并且服务器希望公开请求未得到满足的原因,则它应该在实体中描述拒绝的原因。如果服务器不希望将此信息提供给客户端,则可以使用状态代码 404(未找到)。

但我不认为显式指定 ID 有何意义,因为您现在已经是用户的 ID。因此在这种情况下 /bankaccount/get 就足够了。

If the access is forbidden, return 403:

The server understood the request, but is refusing to fulfill it. […] If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information available to the client, the status code 404 (Not Found) can be used instead.

But I don’t see the point of explicitly specifying the ID anyway as you already now the user’s ID. So /bankaccount/get should suffice in this case.

终止放荡 2024-11-08 03:41:04

在您的示例中,我要么发送 302,将其重定向到错误页面,要么发送 200,其中包含自定义错误页面。这将是最用户友好的版本。

编辑:
如果您想选择状态代码 4xx 区域中的某些内容,请确保网络服务器提供适当的错误页面。一般用户不会乐意看到带有“403 - Forbidden”的白屏。 403加上自定义错误页面可以很好的解决这个问题。

In your example I would either send a 302, redirecting him to an error page, or a 200 with a custom error page right there. This will be the most user friendly version.

Edit:
If you want to opt for something in the 4xx area of status codes, make sure the webserver supplies an appropriate error page. The average user will not be happy to see a white screen with "403 - Forbidden". 403 with a custom error page is a good solution to this problem.

多像笑话 2024-11-08 03:41:04

我投票支持 403 - 禁止,因为这是一个合法的请求,但当前用户不允许。

另一方面,如果查询参数名称错误,则可能应该是 404。

I vote for 403 - Forbidden, since it's a legitimate request, but not allowed for the current user.

If the query parameter names were wrong, on the other hand, it should probably be 404.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文