Autor YouCode - http://www.youcode.com.ar/apache2/modsecurity-error-500-en-envios-de-formularios-con-ajax-y-jquery-183
Muchas veces lidiamos con el error 500 que genera mod_security , veremos en este caso porque se produce.
MOD_SECURITY es una robusta librería que se encuentra disponible para servidores web Apache y que permite a un administrador, extender la seguridad del servidor con mecanismos adicionales incluidos en este módulo.Se encuentra dentro de la categoría de los WAF (Web Application Firewall) dado que contiene directivas que permiten detectar y filtrar ataques comunes contra la infraestructura de un servidor web.
Una de las principales características de este módulo es su capacidad para capturar y analizar de forma dinámica el trafico HTTP, esto es una gran ventaja, dado que estas características le permiten monitorizar, registrar y controlar el acceso de todas las peticiones HTTP que son llevadas a cabo por los clientes, filtrando aquellas que son legitimas y aquellas que tienen altas probabilidades de no serlo.
Este módulo es importante habilitarlo en servidores web ya que permite habilitar una capa extra de protección, sin embargo es también importante tener en cuenta que este módulo no puede proteger por completo un servidor web, ya que su contexto de ejecución esta limitado solamente a las aplicaciones web y hay mucho código (propio del servidor web) que se ejecuta antes de que MOD_SECURITY entre en acción.
Pero muchas veces en nuestros desarrollos nos rechaza con el error 500 , este error se debe a que no se interpretan las peticiones desde el cliente, pero tambien, se debe a que nuestros script PHP estan haciendo un llamado a alguna funcion y mod_security no lo permite.
Basicamente, antes de andar urgando en la configuracion de apache2 y mod_security, hechemosle un vistazo a nuestro codigo.
En mi caso estuve horas averiguando el problema, hasta que anule parte del codigo PHP de mi aplicacion y funciono, el problema habia sido que estaba llamando a la funcion de PHP getmxrr para revisar si la direccion de e-mail que me daba el usuario tenia su MX correcto, bueno, este llamado era bloqueado por mod_security, anule este llamado y todo funciono.
Este articulo (si asi podemos llamarlo) no da la solucion, sino que dejamos a todos una causa del bloqueo para que a los que les pase algo similar, vean primero su propio codigo.
Ahora, vere como poder validar el MX sin que mod_security me bloquee con el ERROR 500
http://www.youcode.com.ar/apache2/modsecurity-error-500-en-envios-de-formularios-con-ajax-y-jquery-183