【问题标题】:HTTP Status Code for detected query string manipulations检测到的查询字符串操作的 HTTP 状态代码
【发布时间】:2014-10-20 14:32:43
【问题描述】:

如果服务器检测到 URI 的查询字符串已被客户端篡改,最好使用什么 HTTP 状态码?

【问题讨论】:

  • 是客户端错误,看4xx范围。

标签: http query-string http-status-codes


【解决方案1】:

了解篡改的性质很重要。如果您只是想禁止人们访问某些网址,403 通常是最合适的。

但可能还有更具体的内容。

假设我们有一个集合,并且可以通过某个标识符 (.../collection/1) 访问这些项目。现在让我们假设用户可以使用带有按钮的 GUI 访问标识符在 1 到 100 之间的项目,例如设置 rest 调用,但不能用于标识符 > 100。现在,如果用户在浏览器中操作 HTML 和请求并尝试访问 id = 200 的项目,返回什么状态码最合适?

让我们说/collection/101。如果该项目存在,但不允许用户访问该项目,则403 是合适的。

如果101永远任何人都无法访问的,因为例如101 实际上是通过/collection2/101 访问的,那么404 状态码是最合适的。

如果/collection/101 不可访问,因为服务器有一个“状态”需要首先更改或解决。此状态可以由用户解决,不是访问控制问题,409可能是合适的。但我想说的是,这通常不适用于GET 之类的请求。

按照您的描述,这听起来更像是权限问题。那么403 是一个简单的选择。

【讨论】:

  • 假设我们有一个集合,并且可以通过某个标识符 (.../collection/1) 访问这些项目。现在让我们假设用户可以使用带有按钮的 GUI 访问标识符在 1 到 100 之间的项目,例如设置 rest 调用,但不能用于标识符 > 100。现在,如果用户在浏览器中操作 HTML 和请求并尝试访问 id = 200 的项目,返回什么状态码最合适?
猜你喜欢
  • 2010-12-26
  • 2011-06-16
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
相关资源
最近更新 更多