我最近开始开发Java应用程序,我正在尝试更多地了解HTTP状态代码,以及应该在什么时候使用它们。
我遇到的一种情况是,当用户登录并希望检查订单的状态时。要求用户不能检查不属于他们的订单的状态。
例如,检查订单的URL是:
mysite.com/order/status?id=22594
处理此请求的servlet将检查ID参数,并从数据库中获取订单。
如果用户输入了他们没有提交的订单的ID,那么是否应该返回403,或者用未找到的订单进行响应?
发布于 2014-12-26 06:15:33
在您的典型情况下,我可以想到以下用例:
订单Id未找到
订单Id属于其他人.
用户未登录
发布于 2014-12-26 06:14:30
如果用户没有提交订单,或者订单不属于用户,则返回以下任何一个响应是合适的:
从安全性的角度来看,最好返回404。
发布于 2014-12-26 06:16:24
来自w3.org 的
服务器理解请求,但拒绝满足请求。授权于事无补,不应重复请求。如果请求方法不是HEAD,并且服务器希望公开请求未被满足的原因,则应该在实体中描述拒绝的原因。如果服务器不希望将此信息提供给客户端,则可以使用状态代码404 (未找到)。
在您的情况下,出于安全原因,最好不要显示订单,但通常答案是403。
https://stackoverflow.com/questions/27658148
复制相似问题