Ik ben druk bezig om redelijk goed login script te maken. Nu heb ik een deel gebruik gemaakt van de ideeen van de tutorial op PhpHulp.nl. Echter heb ik zo mijn eigen code erin geprogged.
Nu ben ik natuurlijk ook druk bezig met uit te zoeken wat zoal verstandig is om te doen. Zo heb ik dit topic goed doorgelezen en zie ik een aantal slimme dingen voorbij komen.
Nu gebruik ik zowel sessies als cookies. De cookies gebruik ik om ervoor te zorgen dat de user ingelogd kan blijven als de browser al eens is afgesloten. De gebruiker kan hiervoor kiezen op het inlog form.
Wat code (hoop niet te veel
) :
In het HTML formulier staat de volgende code voor de MD5 codering:
Ik gebruik dit javascriptje om ervoor te zorgen dat het wachtwoord niet plain-text over het internet wordt gestuurd. In mijn database staat dit wachtwoord ook als MD5.
Wat ik begrijp wat ik ZEKER nog moet doen is gebruik maken van addslashes() in php. Ik begrijp waarom dit nodig is aan de hand van het voorbeeld in de FAQ. Ook moet ik nog alle meldingen aanpassen omdat het zo wel gemakkelijk is om uit te vogelen wat mijn username is. Dus daar moet je niet op letten
Nu vraag ik me af of mijn beveiliging zo lek is als een mandje of dat het een goed script is.
Ook vraag ik me af of de cookie die ik genereer wel veilig genoeg is. De volgende gegevens staan er namelijk in
Wie kan me nog wat tips geven of wat hints die belangrijk zijn voor de beveiliging van mijn site
Nu ben ik natuurlijk ook druk bezig met uit te zoeken wat zoal verstandig is om te doen. Zo heb ik dit topic goed doorgelezen en zie ik een aantal slimme dingen voorbij komen.
Nu gebruik ik zowel sessies als cookies. De cookies gebruik ik om ervoor te zorgen dat de user ingelogd kan blijven als de browser al eens is afgesloten. De gebruiker kan hiervoor kiezen op het inlog form.
Wat code (hoop niet te veel

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
| <? session_start(); ob_start();?> // wat html zut <script language="JavaScript" src="md5.js"></script> <? if($_SESSION['first_name'] == "" AND $_SESSION['password'] == "" AND $_SESSION['ip_address'] =="") { if($_COOKIE['first_name'] == "" AND $_COOKIE['password'] == "" AND $_COOKIE['Ip_address'] == "") { if($_POST['naam'] != "" AND $_POST['ww_crypt'] != "") { //Connect om te kijken of de user + wachtwoord klopt require("./connect.php"); $sql = "SELECT first_name FROM customers WHERE first_name='".$_POST['naam']."'"; $resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL1"); $Results = mysql_num_rows($resultaat); if($Results == "") { echo "De gebruikersnaam is niet bekend in ons systeem"; } else{ $sql = "SELECT password, first_name, last_name, customer_id FROM customers WHERE password='".$_POST['ww_crypt']."'"; $resultaat1 = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL1"); $data = mysql_fetch_array($resultaat1); if($data =="") { echo "Je wachtwoord is verkeerd ingevult"; } else{ echo "Hallo ".$data['first_name']." ".$data['last_name']."<br>"; echo "Je bent ingelogt!"; echo "<br>"; echo "Je wordt automatisch doorverwezen naar de hoofdpagina!"; ?> <SCRIPT LANGUAGE="JavaScript">setTimeout("top.location.href = '/dedicated/index.php' ",3000);</SCRIPT> <? $_SESSION['first_name'] = md5($data['first_name']); $_SESSION['password'] = $data['password']; $_SESSION['ip_address'] = md5(getenv("REMOTE_ADDR")); $_SESSION['customer_id'] = $data['customer_id']; if($_POST['ingelogd_blijven'] == "1") { $formule_hash = ((36500*495)/21); setcookie("first_name", md5($data['first_name']), time() + 365 * 86400); setcookie("dedi-id", $data['customer_id'], time() + 365 * 86400); setcookie("password", $data['password'], time() + 365 * 86400); setcookie("Ip_address", md5(getenv("REMOTE_ADDR")), time() + 365 * 86400); } } } } else{ echo "Vul je gegevens hieronder in!"; // Het invul formulier met daarin de verwijzing naar het encrypten van het wachtwoord (zie verder in topic). } } else{ //cookie controlle require("./connect.php"); $sql = "SELECT password, customer_id, first_name FROM customers WHERE password='".$_COOKIE['password']."' AND customer_id='".$_COOKIE['dedi-id']."'"; $resultaat2 = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL1"); $data1 = mysql_fetch_array($resultaat2); if($data1 == "") { echo "Je Cookie komt niet overeen met onze gegevens"; } else{ if((md5($data1['first_name']) == $_COOKIE['first_name']) AND ($data1['password'] == $_COOKIE['password']) AND (md5(getenv("REMOTE_ADDR")) == $_COOKIE['Ip_address'])) { echo "Je Cookie is geaccepteerd. Veel Plezier!"; ?> <SCRIPT LANGUAGE="JavaScript">setTimeout("top.location.href = '/dedicated/index.php' ",3000);</SCRIPT> <? } else{ echo "Er is met de cookie geknoeid"; } } } // end else cookie controle } else{ // Sessie controle require("./connect.php"); $sql = "SELECT password, customer_id, first_name FROM customers WHERE password='".$_SESSION['password']."' AND customer_id='".$_SESSION['customer_id']."'"; $resultaat2 = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL1"); $data1 = mysql_fetch_array($resultaat2); if($data1 == "") { echo "Je Sessie komt niet overeen met onze gegevens"; } else{ if((md5($data1['first_name']) == $_SESSION['first_name']) AND ($data1['password'] == $_SESSION['password']) AND (md5(getenv("REMOTE_ADDR")) == $_SESSION['ip_address'])) { echo "Je Sessie is geaccepteerd. Veel Plezier!"; ?> <SCRIPT LANGUAGE="JavaScript">setTimeout("top.location.href = '/dedicated/index.php' ",3000);</SCRIPT> <? } else{ echo "Er is met de sessie geknoeid"; } } } ?> |
In het HTML formulier staat de volgende code voor de MD5 codering:
PHP:
1
| <form method="post" action="<? echo $_SERVER['PHPSELF']; ?>" onSubmit="this.ww_crypt.value = hex_md5(this.wachtwoord.value);this.wachtwoord.value = ''"> |
Ik gebruik dit javascriptje om ervoor te zorgen dat het wachtwoord niet plain-text over het internet wordt gestuurd. In mijn database staat dit wachtwoord ook als MD5.
Wat ik begrijp wat ik ZEKER nog moet doen is gebruik maken van addslashes() in php. Ik begrijp waarom dit nodig is aan de hand van het voorbeeld in de FAQ. Ook moet ik nog alle meldingen aanpassen omdat het zo wel gemakkelijk is om uit te vogelen wat mijn username is. Dus daar moet je niet op letten

Nu vraag ik me af of mijn beveiliging zo lek is als een mandje of dat het een goed script is.
Ook vraag ik me af of de cookie die ik genereer wel veilig genoeg is. De volgende gegevens staan er namelijk in
- MD5(First_Name).
- MD5(Password).
- Dedi-id (soort customer ID), niet MD5.
- MD5(Ip_Addres).
Wie kan me nog wat tips geven of wat hints die belangrijk zijn voor de beveiliging van mijn site
[ Voor 13% gewijzigd door IJnte op 17-05-2005 23:18 ]
Exploring the world by bicycle! cyclingsilk.wordpress.com