附录1:RE2正则规则解读


JANUSEC应用网关使用Google RE2正则规则

规则样例1

检查点(CheckPoint):URLPath
解读:检查点URLPath表示URL地址中域名后面的路径(举例 www.yourdomain.com/blog/show.php?id=1&category=2 ,URLPath 为/blog/show.php )

RE2规则:

(?i)/\.(git|svn)/

解读:(?i)表示不区分大小写,/原样匹配,\.匹配小数点,(git|svn)表示匹配git或svn ,用于阻断访问错误发布的源代码。

规则样例2

检查点(CheckPoint):URLQuery
解读:检查点URLQuery表示URL中的参数(举例 www.yourdomain.com/blog/show.php?id=1&category=2 ,URLQuery 为 id=1&category=2 )

RE2规则:

(?i)%\s+(and|or)\s+

解读:%原样匹配,\s+表示一个或多个空格,(and|or)匹配and或or的各种大小写组合(如aNd、AnD、oR等),用于防止SQL注入。

规则样例3

检查点(CheckPoint):GetPostValue
解读:GetPostValue同时作用于GET和POST方法中的参数值(举例 www.yourdomain.com/blog/show.php?id=1&category=2 ,GetPostValue 为参数值 [1, 2] )。

RE2规则:

(?i)\s+(and|or)\s+[\w\p{L}]+=[\w\p{L}]+$

解读:[\w\p{L}]表示任意字母、数字、下划线或Unicode字符(如汉字),=原样匹配,$表示结尾,用于防止SQL注入。
中文或其他UNICODE字符,还可以使用\x{FFFF}格式,比如[\x{007F}-\x{FFFF}]+可匹配中文词语或句子。

©JANUSEC All Rights Reserved.      Contact: support#janusec.com    QQ Group: 776900157