如何让 AWS API 网关拒绝除 GET 和 POST 之外的其他方法

如何让 AWS API 网关拒绝除 GET 和 POST 之外的其他方法

我有一个使用 lambdas 的 API,部署在 AWS 中。该 API 使用 .Net Core 编码,前端使用 angular15 编码。

我需要当从 Web 应用程序的基本 URL 调用时,拒绝任何非 GET 或 POST 的方法。当我测试 Web 的 URL 根目录时,我总是收到状态代码 200。我想拒绝任何非 GET 或 POST 方法的连接,状态代码为 405。

我尝试更改 API 项目的每个 lambda 的中间件以拒绝这些连接。它部分有效,但不会影响 Web 的根 URL。

我已经在 AWS 中配置了 API 网关,只允许通过 GET 和 POST 方法,其他方法都不通过,但它不起作用。我在配置为模拟的 API 网关的根目录中添加了一个方法 ANY,并返回 405,什么也没有。

我在 API 网关的根目录中仅配置了一个指向 lambda 的 ANY 方法,并且在这个 lambda 中我编写了中间件以拒绝 GET 或 POST 方法。同样不起作用。

最后,我使用拦截器和保护器更改了 angular 前端的路由,以阻止任何使用非 GET 或 POST 方法的连接。这不起作用,并且不会提前起作用,因为他们可以直接调用 API 而无需跨前端(例如使用 POSTMAN)。

我猜应该是后端代码中的某个部分可以阻止对 URL 根的第一次调用。但我的后端是由模块配置的,每个模块都接受对其特定功能的调用。没有某个特定的地方我不能阻止 URL 根调用。——至少在我有限的知识范围内——

您能帮我一下吗?从我的代码、API 网关、一般 AWS(我无法使用 AWS WAF)或任何能给我机会的地方。非常感谢您的耐心。

相关内容