Une injection SQL... hmmm ben c'est un petit malin qui écrit "spécialement" les données d'une variable pour essayer de hacker ton serveur...
exemple avec un code login basique :
1 2 3 4 5 6 7 8 9 10 11
|
// SQL de base
$sql = "SELECT login, pwd FROM membres WHERE login = '".$_POST['login'];."'";
// Ce qu'on attend de manière générale
SELECT login, pwd FROM membres WHERE login = 'darkstar123456' // n'est vrai que si on trouve "darkstar123456"
// Injection SQL, dans l'input du login on va écrire :
// ' OR 1 OR 1 = '1
// Ce qui donnera
SELECT login, pwd FROM membres WHERE login = '' OR 1 OR 1 = '1' // toujours vrai, le mec peut se log comme il veut :) |
hop ici l'injection avec un peu de couleur, ça sera plus clair... ^^
En rouge : ce que le mec met dans l'input du login
En bleu : la requete de base
SELECT login, pwd FROM membres WHERE login = '' OR 1 OR 1 = '1'
Pour ce qui est du if() en fait, il s'agit d'un simple test binaire... écrire un ! devant une fonction ou une variable veut dire la même chose que :
1 2 3 4 5
|
if(!$var) // similaire à if($var == false)
if($var) // similaire à if($var == true)
if(!myFunction()) // similaire à if(myFunction() == false)
if(myFunction()) // similaire à if(myFunction() == true) |
Partager