$login = $_GET["nlogin"];
$password = $_GET["ppass"];
$string = mysql_query("SELECT * FROM ulist WHERE login='".$login."' AND
password='".$password."'");
if (mysql_num_rows($string) == 0)
$in = 0;
else
$in = 1;

Questo è un classico esempio di script, vulnerabile a caratteri potenzialmente
pericolosi, dato che sono assenti controlli su di esse; quindi, per superare il
controllo dello script, possiamo inserire nei campi dello username ( $login ) e
della password ( $password ), il codice " OR "=" :

$string = mysql_query("SELECT * FROM ulist WHERE login=" OR "=" AND
password=" OR "="");

Come è possibile vedere, queste due condizioni sono sempre vere, quindi lo script
restituirà necessariamente un valore uguale ad 1 ( $in = 1 ).
ma il problema non si risolve facendo così:

$string = mysql_query("SELECT * FROM ulist WHERE login='".$login."' AND
password='".$password."'");

if(mysql_num_rows($string)==1)
{.... qui inserisco il codice di accettazione login}


nel tuo caso da uno perchè in realtà non da 0 quindi se tu al posto di verificare lo 0 verifichi l'1 il problema dovrebbe essere risolto o sbaglio? Anche senza fare controlli??
Ho ripreso questo script perchè ho letto i 3d sull'argomento e alla fine senza fare vari controlli mi sembra che la mia soluzione sia corretta, voi cosa dite? anche se si inserisce il codice " OR "=" i risultato sarà superiore a 1 e quindi non da l'accesso in ogni caso!! ovviamente si si ha un solo utente la cosa non funziona.

aspetto commenti.
ciao