正则表达式PCRE匹配具有多个参数随机值的URL

时间:2017-12-04 12:16:14

标签: regex pcre snort suricata

我希望与正则表达式PCRE匹配的示例GET请求:

random.php蓝色=值1&安培;绿色=值2&安培;红色=值3&安培;橙= VALUE4&安培;灰色=值5&安培;黑色= value6

事实:

random.php - 文件名是随机的,只有" .php?"是固定的

我有大约10种颜色定义为参数

没有特定的颜色顺序 - .php?blue = [a-zA-Z0-9] {1,20}

可以只有2种颜色作为参数,或者全部是10种颜色,但我希望在所有GET请求中匹配,多个参数与\&

连接

值始终介于1-20和字母数字之间 - .php?blue = [a-zA-Z0-9] {1,20}

你会怎么做?

1 个答案:

答案 0 :(得分:0)

也许是这样的:

[^\s/?]+\.php\?((?:blue|orange|red|black)=[a-zA-Z0-9]{1,20})(?:&(?1)){1,9}(?:$|#.*)

(包含您想要的颜色)

(?1)是对第一个捕获组子模式的引用。

我添加了对最终锚点#.*的支持。如果您不需要或不需要,请随意将其删除。