Esto implica que en algún momento estás construyendo sentencias de SQL por concatenación de cadenas que involucran cadenas no confiables. ¡No hagas eso! En su lugar, use declaraciones preparadas (o alguna otra forma de parametrización de consultas), ya que son bastante intrínsecamente inmunes a SQLi.
Supongo que te refieres a que tu interfaz bloquea con éxito todos los SQLi que probaste. Esto no significa que bloquee todos los SQLi, por supuesto; eso depende de qué tan exhaustivas sean sus pruebas.
Sin embargo, una vez que la consulta llega a tu servidor (asumiendo que es tu DBMS), realmente no hay forma de saber qué SQL proviene de SQLi y qué SQL es legítimo. Realmente debes confiar en que lo que viene en la conexión de la base de datos es confiable.
Por supuesto, es aconsejable limitar el impacto de tales ataques tanto como sea posible. Más simple y comúnmente, puede limitar los permisos de la cuenta de servicio de la aplicación en la base de datos solo a las acciones que realmente realiza. Esto no impide que SQLi per se, pero disminuirá el impacto si existe alguno.
Otro enfoque posible es abstraer algunos de los SQL en una capa de acceso a datos con la cual habla el frontend, y evitar pasar cadenas al DBMS que no provienen de la aplicación en sí (y ciertas columnas de confianza en ciertas tablas) . Es mucho más fácil usar declaraciones preparadas.