- Desabilitar a regra no arquivo de rules: essa é a maneira mais simples, basta editar o arquivo onde a regra se encontra, e simplesmente excluí-la ou comentá-la com "#". Apesar de ser simples, isso não é recomendado, pois ao atualizar posteriormente os arquivos de regras, essa tarefa terá que ser feita novamente. Outra desvantagem é que nem sempre queremos desabilitar toda a regra, e sim somente para um determinado contexto do Apache, ou para um IP ou para uma url do site, e deixá-la habilitada para o resto.
- Desabilitar o ModSecurity para um endereço IP específico: Segue exemplo abaixo:
SecRule REMOTE_ADDR "@streq 192.168.1.1" \
phase:1,t:none,nolog,allow
- SecRuleRemoveById: - Como o próprio nome da regra diz, permite que uma regra seja desabilitada no ModSecurity somente passando o seu ID. A vantagem do seu uso é a simplicidade na sua aplicação, e além disso, o uso de contextos no apache. Seguem abaixo alguns exemplos:
- Desabilitar a regra com o ID 950007 (Blind SQL injection, cuja regras está no arquivo modsecurity_crs_41_sql_injection_attacks.conf da CRS), somente da URL /foo/bar :
<Location ^/foo/bar/>
SecRuleRemoveById 950007
</Location>
- Com o uso do Location do apache, é possível criar expressões regulares para liberação como nos exemplos abaixo:
<LocationMatch ^/foo/bar/[0-9]+/edit/$>
SecRuleRemoveById 950007
</LocationMatch>
<LocationMatch ^/foo/.+/bar/.+/edit/$>
SecRuleRemoveById 950007
</LocationMatch>
- Também é possível usar outras diretivas do Apache em conjunto com diretivas do ModSecurity, como por exemplo Virtualhost:
<VirtualHost 10.1.2.3:80>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
SecRuleEngine On
</VirtualHost>
<VirtualHost 10.1.2.3:80>
ServerAdmin webmaster@host2.example.com
DocumentRoot /www/docs/host2.example.com
ServerName host2.example.com
ErrorLog logs/host2.example.com-error_log
TransferLog logs/host2.example.com-access_log
SecRuleEngine Off
</VirtualHost>
- Também é possível utilizar outros métodos para desabilitar as regras, como por exemplo: uso de variáveis transacionais, SecRuleRemoveByMsg, SecRuleRemoveByTag, SecRuleUpdateActionById, SecRuleUpdateTargetById (deprecated), SecRuleUpdateTargetByMsg, SecRuleUpdateTargetByTag, ctl:ruleRemoveById, ctl:ruleRemoveTargetById. Essas diretivas ficam para posts futuros.
Nenhum comentário:
Postar um comentário