【问题标题】:Why kong access non configured regex route?为什么 kong 访问未配置的正则表达式路由?
【发布时间】:2021-09-14 10:06:25
【问题描述】:

我正在使用 Kong v2.1.2

在我的上游服务器上,我有 API

GET /v1/country
GET /v1/country/{country_code}/brands
GET /v1/country/{country_code}/brands/{brand_code}/types

我在 kong 路由上配置了路径 1 和 2,主机头为“example.com” 我可以使用 Kong 访问 1 个和 2 个 API。 但有趣的是,即使没有在 Kong 中配置,我也可以使用相同的主机头访问第 3 个 API。

所以问题是 Kong 如何访问那些未配置的 API,以及如何禁止未在 kong 上配置但存在于上游服务器中的请求。

请帮助我理解这一点。

谢谢!

【问题讨论】:

  • 如何配置路由?如果您不添加 $ kong ,则在路线末尾添加 * 。请分享您的配置

标签: kong kong-plugin konga


【解决方案1】:

这里的诀窍是,在 Route 配置路径参数中是一个正则表达式。

如果使用路径定义路由:/api/v1/resources,则/api/v1/resources/10/private-subresource 对匹配的请求有效。

现在想象/api/v1/resources/{id}/private-subresource 是您的 ms 的端点,不应被 kong 暴露,但 /api/v1/resources 是;那么您可以在不知情的情况下将私人数据暴露给互联网。

为避免这种情况,您可以在定义中使用$ 限制Route 路径的范围:

- name: get-resources
    methods:
    - GET
    paths:    
    - /api/v1/resources$

/api/v1/resources/{id}/private-subresource 不再有效匹配路由

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多