MySQL Injection

Input velden zijn leuke velden voor "wannabee hackers", zeker als deze zondermeer in de query worden over genomen:

Een simpele login query als voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= "SELECT username, password FROM users WHERE username='".$_POST[ 'username']."';";
?>


Stel nu dat de gebruiker in het 'username' veld het volgende invult:
a' OR '1'='1

dan onstaat de volgende query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= "SELECT username, password FROM users WHERE username='a' OR '1'='1';";
?>


Afhankelijk van de maniet van afhandelen hoeft dat geen verelende gevolgen te hebben, maar zo iets wil je gewoon niet, daar voor is de functie: mysql_real_escape_string() bedacht:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= "SELECT username, password FROM users WHERE username='".mysql_real_escape_string($_POST[ 'username'])."';";
?>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Includes
  2. MySQL Injection
  3. Error afhandeling
  4. Externe variabelen

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.