Hoe kan ik veilig MySQL gebruiken?
Het veilig schrijven van MySQL-scripts is essentieel om kwetsbaarheden te voorkomen, zoals SQL-injectie en andere beveiligingsrisico's. Hier zijn enkele tips:
1. Gebruik Prepared Statements
Prepared statements zorgen ervoor dat invoer van gebruikers veilig wordt verwerkt, omdat deze automatisch speciale tekens escapen. Voorbeeld in PHP met PDO:
$stmt = $pdo->prepare("SELECT * FROM gebruikers WHERE email = :email");
$stmt->execute(['email' => $email]);
$result = $stmt->fetch();
Dit voorkomt dat schadelijke SQL-injectiecode wordt uitgevoerd.
2. Escape Invoer Correct
Als je geen prepared statements gebruikt (wat sterk wordt afgeraden), gebruik dan functies zoals mysqli_real_escape_string om invoer te escapen:
$safe_input = mysqli_real_escape_string($conn, $user_input);
$query = "SELECT * FROM table WHERE column = '$safe_input'";
Maar gebruik altijd prepared statements als je de keuze hebt.
3. Gebruik een Minimale Databasegebruiker
Geef je databasegebruiker alleen de rechten die nodig zijn. Gebruik bijvoorbeeld aparte accounts voor schrijven en lezen:
SELECT voor leesacties.
INSERT, UPDATE, DELETE alleen als absoluut nodig.
4. Validatie en Sanitisatie van Invoer
Controleer alle gebruikersinvoer voordat het in een query terechtkomt. Bijvoorbeeld:
Validatie: Zorg dat een e-mailadres correct is.
Sanitisatie: Verwijder ongewenste karakters of whitespace.
5. Gebruik Wachtwoorden Correct
Versleutel wachtwoorden met veilige hashing-algoritmes zoals password_hash() in PHP.
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
Gebruik nooit plaintext-wachtwoorden in je database.