Coleções customizadas com mod_security

2

Eu gostaria de criar uma coleção mod_security baseada em algo diferente do IP, da ID de sessão ou do nome de usuário do usuário. Especificamente, com base no REQUEST_URI. No entanto, mod_security indica que isso não é possível. Minha pergunta é se pode haver alguma solução alternativa.

Eu tentei o seguinte, mas não consegui fazê-lo funcionar:

SetEnvIf Request_URI "^\/([a-z0-9]+)\/" account="$1"
SecAction setsid:%{account},pass,nolog
SecAction "phase:2,pass,setvar:session.count=+1,nolog"
SecRule SESSION:COUNT "@gt 60" "phase:2,deny,status:503,skip:1,nolog"
SecAction "phase:5,deprecatevar:session.count=1/1,pass,nolog"

O texto acima deve extrair o nome da conta da URL (linha 1) e usá-la como id da sessão (linha 2; é o que não funciona). Em seguida, aumenta a contagem de solicitações em cada solicitação que inclui esse nome de conta (linha 3). Se a contagem ultrapassar 60 (linha 4), será retornado um erro 503. A contagem é diminuída em 1 a cada 1 segundo (linha 5).

    
por Matt White 19.06.2012 / 23:26

0 respostas