Kan er iemand me nog tips geven hoe ik deze script om aan te melden kan beveiligen?

<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("<center>Kan niet verbinden met de database.</center>");
mysql_select_db("$db_name")or die("Kan geen databank selecteren.");

// username and password sent from form
$email=$_POST['email'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection
$email = stripslashes($email);
$mypassword = stripslashes($mypassword);
$email = mysql_real_escape_string($email);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE email='$email' and wachtwoord='$mypassword'";

$result=mysql_query($sql);


$row_Recordset1 = mysql_fetch_assoc($result);
$gebruiker = $row_Recordset1['voornaam'];
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $email and $mypassword, table row must be 1 row
if($count==1){
// Register $email, $mypassword and redirect to file "login_success.php"

session_start();
$_SESSION["email"] = $email;
$_SESSION["mypassword"] = $mypassword;
$_SESSION["voornaam"] = $gebruiker;
header("location:login_success.php");
}
else {
require("header.php");
echo "<center>Verkeerd email of wachtwoord.</center>";
}
?>

Mvg
- Variabelen butien quotes
- Geen variabelen overschrijven op lijn 17 t/m 20
- Waarom sla je wachtwoorden op in een sessie?
- Ik mis foutafhandeling op je query
- <center> is antiek. Gebruik CSS
Om het veiliger te maken: houd bij hoe vaak er een verkeerd email/wachtwoord combinatie wordt geprobeerd. Zo zou je brute force aanvallen in elk geval kunnen detecteren.
Script logica aanpassen

- de juiste controles en validaties toevoegen
- stripslashes weg
- session_start() hoort op regel 2 te staan en niet op regel 36
- (mysql) foutafhandeling toevoegen
- geen overbodige variabelen aanmaken
- geen variabelen namen gebruiken voor database-, tabel- en veldnamen
- php variabelen buiten quotens
- mysql_real_escape_string alleen binenn de sql statement toepassen
- na een header komt altijd een exit
- gebruik geen verouderde html elementen

maar volgens mij heb je dit rijtje al eerder om je oren gekregen en posten we het voor de KzK.
En om het rijtje nog even compleet te maken wil ik je ook nog even verwijzen naar deze handleiding van Roel..

Linkje
Nog een tip is, als iemand foutief inlogt een sleep(3) o.i.d. erin zetten, dit verminderd brute-force kansen aanzienlijk. Stomweg omdat de tijd die het aantal pogingen in beslag neemt dan veel langer wordt.

Reageren