Goedendag alle,
Al een tijd gebruik ik onderstaand script, voor verschillende websites. Maar deze heeft een aantal (grote) lekken, denk ik, qua veiligheid. Wat mijn niet lukt is: mysql_real_escape_string toevoegen aan de $_POST gedeeltes. Wanneer ik dat bijvoorbeeld doe bij 'gebruikersnaam' lijkt het wel alsof hij heel de gebruikersnaam niet ziet. Want ik krijg dan de melding, dat de gebruikersnaam niet ingevuld is.
Ik werk met sessions, alleen niet gebonden aan IP, is dit beter of juist niet?
Wat kan beter, wat doe ik verkeerd en wat doe ik juist wel goed? Graag suggesties.
Dank alvast.
Al een tijd gebruik ik onderstaand script, voor verschillende websites. Maar deze heeft een aantal (grote) lekken, denk ik, qua veiligheid. Wat mijn niet lukt is: mysql_real_escape_string toevoegen aan de $_POST gedeeltes. Wanneer ik dat bijvoorbeeld doe bij 'gebruikersnaam' lijkt het wel alsof hij heel de gebruikersnaam niet ziet. Want ik krijg dan de melding, dat de gebruikersnaam niet ingevuld is.
Ik werk met sessions, alleen niet gebonden aan IP, is dit beter of juist niet?
Wat kan beter, wat doe ik verkeerd en wat doe ik juist wel goed? Graag suggesties.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| <?php session_start(); $databaseid = $_SESSION['gebruikersid']; $gebruikersnaam = $_SESSION['gebruikersnaam']; if (!$gebruikersnaam && !$databaseid){ $form = "<div class='form'><form id='login' action='' method='post'> Gebruikersnaam:<br> <input type='text' class='tekst' name='gebruikersnaam' /><br> Wachtwoord:<br> </span> <input type='password' class='tekst' name='wachtwoord' value='' /><br> <input class='submit_nieuw' type='submit' name='inloggen' value='go!'/><br> </form></div>"; if ($_POST['inloggen']) { $gebruikersnaam = $_POST['gebruikersnaam']; $wachtwoord = $_POST['wachtwoord']; if ($gebruikersnaam) { if ($wachtwoord) { $wachtwoord = md5(md5("8skA9c" . $wachtwoord . "lAx098S")); $query = mysql_query("SELECT * FROM admin WHERE gebruikersnaam='$gebruikersnaam'"); $numrows = mysql_num_rows($query); if ($numrows == 1) { $row = mysql_fetch_assoc($query); $databaseid = $row['id']; $databasegebruiker = $row['gebruikersnaam']; $databasewachtwoord = $row['wachtwoord']; if ($wachtwoord == $databasewachtwoord){ $_SESSION['gebruikersid'] = $databaseid; $_SESSION['gebruikersnaam'] = $databasegebruiker; echo "<meta http-equiv='Refresh' content='0; url=../../admin.php' />"; }else echo "De gegevens kloppen niet. $form"; }else echo "De gegevens kloppen niet. $form"; mysql_close(); }else echo "Je moet een wachtwoord opgeven. $form"; }else echo "Je moet een gebruikersnaam opgeven. $form"; }else { echo $form; } }else{ header('location: ../../admin.php'); } ?> |
Dank alvast.