我需要使用 modsecurity 拒绝部分 url,例如:
index.php?page_num=用户
我已经实施了这条规则:
SecRule REQUEST_URI "/index\.php\?page_num=users" "id:10000100,phase:1,t:lowercase,deny,msg:'UsersDeny'"
它适用于 URI“index.php?page_num=users”,但它也拒绝用户字符串之后的任何字符,例如:
index.php?page_num=userssadasd
我怎样才能拒绝确切的 URI“*index.php?page_num=users”?
答案1
如果没有显式运算符,引擎将使用@rx
。有两种可能的方法来解决这个问题:
- 使用正则表达式的锚定模式,例如
REQUEST_URI "^/index\.php\?page_num=users$"
- 使用
@streq
运算符:REQUEST_URI "@streq /index.php?page_num=users"