Estoy trabajando en una aplicación web que es vulnerable a la inyección de SQL en su cuadro de búsqueda. Utiliza ASP.Net (C #) y Microsoft SQL Server.
En el cuadro de búsqueda, consulta como:
Select Column1 from TBL where Column2 = N' Here The Search box Content ';
Como puede ver, el código anterior es completamente vulnerable a SQLi.
Lo que hice para mitigar esto fue crear un método para reemplazar todos '
con ''
, lo que en SQL Server significa que es una sola cita.
Entonces, si un usuario ingresa algo como ' order by --
en el cuadro de texto, la función de reemplazo lo reemplazará con Replace("'","''");
y el servidor SQL Server nunca ejecutará el SQL inyectado del atacante.
¿Entonces solo quiero saber si estoy completamente seguro contra SQLi? ¿O hay una manera de evitar mi protección de inyección?