1

在设计它们时,我一直在尝试遵循良好的 RESTful API 实践。其中一个恰好是非常简单和常见的,但越来越难以理解:

  • 使用GEThttp 动词检索资源

为什么?假设您有一个 URI 来获取这样的帐户信息:

AXY_883772银行系统中的帐户 ID 在哪里。安全审核将发出警告,指出:

  1. 帐户 ID 将出现在 HTTP 访问日志中
  2. 帐户 ID 可能会缓存在浏览器的历史记录中(即使不太可能定期使用浏览器来访问 RESTful API)

他们最终通过“推荐”POST应该使用动词来结束。

所以,我的问题是:

我们对于它可以做些什么呢?只需遵循安全建议并避免GET大部分时间使用?使用某种特殊的 APACHE/IIS/NGINX 访问日志配置来避免记录对某些 URL 的访问?

4

1 回答 1

2

如果您的 url 中有敏感信息,并且您正在记录 url,那么您正在记录敏感信息。

所以有两个明显的解决方案:

  • 不要记录网址
  • 使用不包含敏感信息的其他网址

最后一个可以通过使用您的服务器映射回正常 id 的一些(不同的)id 来实现。

如果这些解决方案都不适合您,那么您不能使用 GET,因此它不是好的 RESTful 设计。

我意识到所有这些事情对你来说可能已经很明显了;但这是我能给出的最准确的答案。

值得一提的是,这不仅适用于 GET,实际上也适用于 PUT、DELETE 和通常的 POST。

于 2012-07-13T13:46:47.600 回答