如何使用包含这些特殊字符的<>^| 的urls请求到api网关后面的lambda,而不被api网关阻塞?
问题:我们有一个由api网关触发的lambda,而lambda通常会响应大多数请求。但是,带有某些特殊字符(<>^|)的url将返回一个400 bad_request,而不会将其传递给lambda。当在url中使用url编码的替代方案(即%7C代替|)时,lambda响应时不会出现问题。
首先,我们的团队假定包含这些特殊字符(特别是垂直栏(|) )的请求被AWS阻塞。但是WAF图并没有将请求记录下来,这导致我们认为这可能是一个api网关问题。
尝试过的内容:对已部署的服务器运行相同的curl请求10次。其中九次,在url端点中使用一个特殊的字符,第十次使用编码等效。
编码的尝试完成了,lambda毫无异议地做出了回应。所有其他九次尝试都失败了,并且没有出现在AWS控制台或WAF图中。
除了让我们的用户始终将这些特殊字符编码在url主体中作为一个“修复”之外,还会非常感谢对这个api网关问题的任何见解。谢谢。
发布于 2021-12-02 23:56:37
并非所有字符都受支持。来自文档
路径段只能包含字母数字字符、连字符、句点、逗号、冒号和大括号。路径参数必须是独立的路径段。
https://stackoverflow.com/questions/70207460
复制相似问题