Hai questa query : DELETE FROM Ingredienti WHERE ID='$delete'
Se $_GET['id'] = "0' or 1=1 --"
Ti dà : DELETE FROM Ingredienti WHERE ID='0' or 1=1 --'
Poi per ottenere ció basta creare un link :
<a href='ingredienti.php?id="0' or 1=1 --">clicca</a>
Hai questa query : DELETE FROM Ingredienti WHERE ID='$delete'
Se $_GET['id'] = "0' or 1=1 --"
Ti dà : DELETE FROM Ingredienti WHERE ID='0' or 1=1 --'
Poi per ottenere ció basta creare un link :
<a href='ingredienti.php?id="0' or 1=1 --">clicca</a>
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Non capisco bene questa cosa, ho provato a mettere lo 0 o l' 1=1, non succede nulla.
Comunque ora funziona, puoi verificarlo nel link che ho messo nel primo post (lo smile), inserisci e cancella pure ciò che vuoi, è solo un test.
Quello che non ho ben capito, è il discorso sicurezza, mettiamo che sia professionale.
Mi ero sbagliato su un carattere.
...
ti ho mandato un mp.
Discorso sicurezza. Tutti i dati che sono inviati devono essere controllati prima di essere elaborati.
Ultima modifica di badaze; 07-01-2016 a 23:53
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Grazie, questo è un problema dalla barra degli indirizzi, non dalla pagina in se, il controllo, come si fa?
Con una seconda pagina immagino, usando POST al posto di GET, non credo però, o in qualche altro modo?
Il problema sta nella pagina non nell'indirizzo. Non puoi impedire a nessuno di scrivere una url e di eseguirla. Quindi devi controllare i dati che ti sono inviati; che lo siano tramite get o post. Poi per i metodi, cerca in internet o qui ce ne sono tanti.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Onestamente guide non ne ho trovate tante, quella forse più vicina al mio caso è questa, che però ho capito in parte.
Potresti cortesemente spiegarmi meglio come funziona e come si applica?
Ho fatto un po' di prove, logicamente cambiando l'SQL, ma utilizzando quel:
viene sempre cancellato tutto.codice:?id=0 or 1=1 --
Grazie!
Devi controllare che il dato che ti è inviato combaci con i tuoi requisiti. Per esempio nell'id aspetti un numero. Quindi devi controllare che il dato passato è un numero.
Esempio :
Codice PHP:if (! isset($_GET['id'])) {
die("errore 1");
} else {
$id = $_GET['id'];
if (! preg_match("/^[0-9]+$/",$id)) {
die("errore 2");
}
// se arriva qui allora id corrisponde ad un numero.
}
Ovviamente l'esempio è solo una dritta. Tocca a te vedere cosa fare nel caso in cui c'è un errore.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Credevo servisse il
quindi ok.Codice PHP:mysql_real_escape_string()
L'errore 1 è in caso la variabile sia nulla, avevo già precluso quell'errore no?
Mentre l'errore 2 funziona alla grande, direi che ora funziona tutto.
Il rischio era solo quello?
Grazie veramente tante, mi sei stato di grandissimo aiuto!![]()
Mysql_real_escape_string serve eccome !
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Correggimi se non ho capito bene:
Quella funzione verifica i caratteri immessi, io invece nella pagina, accettavo solo lettere, quelli accentati e spazio:
Quindi qualsiasi altro carattere veniva bloccato.Codice PHP:function CheckName($checkname)
{
$charsok = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàèìòù ";
for($x=0; $x<strlen($checkname); $x++)
{
$string=substr($checkname, $x, 1);
$charsk=strrpos($charsok, $string);
if ($charsk===false)
{
return(false);
}
}
return(true);
}
Alla fine è la stessa cosa, no?