Estoy editando mi pregunta para aclarar lo que estoy tratando de preguntar.
Para lanzar una inyección SQL, debería haber alguna forma de obtener información del usuario (es decir, nombre de usuario y contraseña), por ejemplo. Así que he estado expuesto al ataque y a la solución en sí misma, el énfasis de la solución estaba en validar la entrada y en cierto modo filtrarla de caracteres especiales, esa fue solo una solución simple que, básicamente, no será efectiva porque si un autor autorizado la contraseña del usuario contenía caracteres especiales (por ejemplo, # ,!, etc.) y luego ese usuario no podrá iniciar sesión en el sistema. Mi pregunta es (aunque esa no fue la mejor solución) por qué sería filtrar la entrada de la contraseña ... ¿no será suficiente el nombre de usuario porque generalmente dentro de la consulta SQL la entrada del nombre de usuario va antes de la entrada de la contraseña? ¿Por qué filtrar ambas?
(PS I también estuvo expuesto a las consultas parametrizadas que son mejores que el filtro de caracteres especiales básicos, pero me gustaría saber de qué sirve filtrar la contraseña en el primer caso)
Última edición:
A partir de las respuestas y los comentarios que obtuve sobre esta pregunta, creo que puedo dejarlo un poco más claro ... lo que estaba tratando de preguntar es por qué deberíamos filtrar la contraseña además de filtrar el nombre de usuario. Si el filtrado incluye la detección de caracteres especiales y la contraseña del usuario contiene caracteres especiales, entonces un usuario válido no podrá ingresar al sistema.