首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS WAF Regexp问题展望

AWS WAF Regexp问题展望
EN

Stack Overflow用户
提问于 2020-01-17 08:34:08
回答 1查看 1.1K关注 0票数 3

我正在为AWS WAF构建一个regexp,它使用的是负的前瞻性。

代码语言:javascript
复制
joe(?!(ann|jen))

但是,我从WAF控制台获得了以下错误

代码语言:javascript
复制
WAFInvalidParameterException: Error reason: The parameter contains formatting that is not valid., field: REGEX_PATTERN_SET, parameter: joe(?!(ann|jen))

看起来AWS WAF不支持这种regexp。我找到了这个博客https://aws.amazon.com/about-aws/whats-new/2017/10/aws-waf-now-supports-regular-expressions-regex/

有没有人有类似的问题?你能告诉我怎么修吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-26 20:02:01

由于否定的外观是不支持的,我把我的观点分解成几个涵盖所有情况的表达式。WAF允许您指定多个表达式。它使用逻辑或匹配,因此只有其中一个必须匹配。使用问题中的例子,解决方案可能是..。

代码语言:javascript
复制
joe[^aj]
joea[^n]
joean[^n]
joej[^e]
joeje[^n]

joe匹配,除非他后面跟着aj。那么他很可疑,所以我们继续下一条规则。如果这个a后面跟着一个n,那么我们仍然是可疑的,所以我们继续下一个规则。我们重复这个过程,直到我们决定整个单词是joeann还是joejen

我的特殊用例是URI匹配。我想将请求节流到整个目录,除了一个子目录(以及它的所有子目录)。

假设我们想要节流/my/dir,但不想在/my/dir/safe中使用任何东西。我们会这样做.

代码语言:javascript
复制
^/my/dir/?$
^/my/dir/[^s]
^/my/dir/s[^a]
^/my/dir/sa[^f]
^/my/dir/saf[^e]
^/my/dir/safe[^/]

我们遵循相同的程序,依次识别每个字母。

“你不能从S开始,你可以从S开始,但是你也不能有A,好吧,好吧,我会让它滑倒,但你也不能有F。好吧,好吧,你的坚持,但是.”

注意,我们必须为尾随斜杠/包含一个规则。这包括/my/dir/safe/和所有子目录(如/my/dir/safe/whatever )中的可选斜杠。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59783687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档