Bonjour, j'ai activé mod_security sur un serveur centos5 et l'une des règles empêche un utilisateur de poster un texte dans un formulaire. Le texte est légitime mais il contient les mots 'create' et un html <table>
plus loin dans le texte, ce qui provoque un faux positif.
L'erreur que je reçois est la suivante :
[Sun Apr 25 20:36:53 2010] [error] [client 76.171.171.xxx] ModSecurity: Access denied with code 500 (phase 2). Pattern match "((alter|create|drop)[[:space:]]+(column|database|procedure|table)|delete[[:space:]]+from|update.+set.+=)" at ARGS:body. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "352"] [id "300015"] [rev "1"] [msg "Generic SQL injection protection"] [severity "CRITICAL"] [hostname "www.mysite.com"] [uri "/node/181/edit"] [unique_id "@TaVDEWnlusAABQv9@oAAAAD"]
et voici /usr/local/apache/conf/modsec2.user.conf (ligne 352)
#Generic SQL sigs SecRule ARGS "((alter|create|drop)[[:space:]]+(column|database|procedure|table)|delete[[:space:]]+from|update.+set.+=)" "id:1,rev:1,severity:2,msg:'Generic SQL injection protection'"
Les questions que je me pose sont les suivantes :
- Que dois-je faire pour mettre cette règle sur liste blanche ou l'autoriser à passer ?
- Quel fichier dois-je créer et où ?
- Comment modifier cette règle ?
- Est-ce que je peux l'autoriser pour un seul domaine, puisque c'est le seul qui a ce problème sur ce serveur dédié, ou est-ce qu'il y a un meilleur moyen d'exclure les table tags ?
Merci les gars