Según mi conocimiento es porque no estás usando php exit; función
puede que estés usando esto
session_start();
if (!isset($_SESSION['username'])) {
header('Location: index.php');
}
mysql and other php code here without filtering
pero debes usar
session_start();
if (!isset($_SESSION['username'])) {
header('Location: index');
exit;
}
mysql y otro código php aquí sin filtrar
Ahora, cualquier software o escáner de vulnerabilidades no podrá verificar que tiene una laguna para la inyección de SQL. Como la función de salida no permitirá que otro código se ejecute después de sí mismo. Todavía es necesario el filtrado del lado del cliente.
También puedes usar la función die.