首页 > 解决方案 > 如何在生产中禁用 HATEOAS?

问题描述

我的 REST API 仅由我们自己的移动应用程序使用,并且它还有一些受限制的端点供管理员 UI 使用。通过观察移动应用程序的通信很容易获得切入点。从那里恶意用户很容易使用 HATEOAS 发现所有可能的端点。

即使 API 受到 Spring Security 的适当保护,也存在已知的安全漏洞,例如https://jira.spring.io/browse/DATAREST-1144允许修改只读数据。

在开发过程中,HATEOAS 很有用,但我想在生产中禁用它以使发现端点更加困难。

标签: spring-data-rest

解决方案


而不是禁用 HATEOAS(您的应用程序应该将其用作端点的查找!)您应该相信您的安全层能够尽其所能地完成最佳工作。

以下是一些注意事项:

  • 将用户授权添加到您的管理端点。也许您可以使用现有的 API 密钥基础设施来实现这一点。
  • 将管理端点移动到单独的受保护 API

这些建议都不是快速修复,但我不建议禁用 HATEOAS。一旦它消失了,你在需要它的地方找到一个问题。


推荐阅读