Quiero crear un regex que me permita filtrar caracteres no deseados (para evitar ataques xss, php y sql) en jquery. Para ello estoy probando dos plugins: filter_input (https://github.com/northern/Input-Filter-JS) y keyfilter (https://github.com/akzhan/jquery-keyfilter) pero ambos me dan error al usar el regex que necesito.
Los caracteres a permitir serian alphanumericos (a-zA-z0-9), espacios (a ser posible solo 1 entre caracteres) y los siguientes: ". : , - + ¿? ¡! ' ñ ç" y vocales con acentos y dieresis (pero no por separado).
He encontrado varios regex pero en cuanto intento añadir algún caracter de los arriba mencionados me da un error y no lo toma, ocurre con ambos plugins...
La idea es permitir elegir que caracteres especiales usar para cada input y luego usarlo en php con preg_replace por si se manipula el javascript.
¿Alguna idea de por qué esos dos plugins no aceptan regex con esos carácteres?
Tampoco es que tenga mucha idea de regex, a lo mejor lo estoy haciendo mal, pero otros los he sacado de respuestas que están funcionando, no sé...
Gracias!
Hola, veo un inconveniente con validacion de caracteres en javascript.
Si bien el usuario normal no podrá ingresar esos caracteres, van a estar bloqueados, pero que pasa si alguien simplemente inspecciona tu formulario y elimina la parte de js que no le gusta?
Ese tipo de validación debería estar hecho del lado del servidor tambien.
Esta pagina tiene una lista de regex mas comunes:
http://www.regexlib.com/
Saludos.
Si, por supuesto, olvidé mencionarlo. También tengo los mismos regex validando que el string coincida en php.
Esto es simplemente para que el usuario sepa que dichos carácteres no están permitidos y que si hackea su lado de cliente, al enviar el formulario dará error y tendrá que empezar de nuevo. Ya que es un formulario bastante extenso, que no se diga que no he avisado ;D
Sobre el plugin, no tiene porque bloquear, también puede mostrar un mensaje de error diciendo que nose permiten dichos carácteres y que no deje enviar.
Edito: Creo que mejor voy a utilizar el atributo pattern de html5 y con jquery mostrar un error en caso de no validar.