当用户可以访问 url 但不能查询参数时,使用什么 https 状态代码?
美好的一天,
当请求者可以访问该 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果禁止访问,则返回403:
但我不认为显式指定 ID 有何意义,因为您现在已经是用户的 ID。因此在这种情况下
/bankaccount/get
就足够了。If the access is forbidden, return 403:
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.在您的示例中,我要么发送 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.
我投票支持 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.