La mejor solución sería negar implícitamente, es decir, permitir exactamente los datos que desea, pero ningún otro.
Puede escribir expresiones regulares que coincidan con todas las entradas que no estén de acuerdo con su filtro para encontrar entradas extrañas, que podrían ser una vulnerabilidad. También es una buena manera de encontrar información válida que omitió en su expresión regular.
Un nombre de usuario podría estar bien con [a-zA-Z0-9]+
, en lugar de eliminar comillas simples o similar a la entrada de saneamiento.
EDITAR:
Este es el enfoque que tomaría:
- Agregue expresiones regulares para negar implícitamente todas las entradas, para solucionar este problema en el futuro.
- Compare los datos en los archivos de registro con las expresiones regulares que se escribieron en el paso 1
- Eliminar todos los datos de entrada en los archivos de registro que coincidan con las expresiones regulares.
- Reduzca los registros contando filas idénticas y deduplicándolas, para que no tengamos que buscar 1000 filas idénticas, pero aún sabemos que teníamos 1000 filas así en los archivos de registro.
- Compruebe si alguna de las entradas registradas debe ser válida. Si es así, actualice la expresión regular correspondiente y vaya al paso 2.
- Compruebe si alguna de las entradas de registro restantes parece sospechosa.