hee mensen..
Ik ben bezig met login module. Nou wil ik dat het wachtwoord client site wordt versleuteld..
na wat zoeken leek me deze techniek het beste:
Je hebt een inlog script met 2 velden, een username veld en een password veld. Je wilt niet dat mensen je password kunnen onderscheppen, dus je encrypt dit d.m.v. javascript, maar als mensen nu het geëncrypte wachtwoord onderscheppen, kunnen ze nog steeds inloggen, ze kunnen immers de opgevangen data verzenden naar de server, dus wat je wilt is bij iedere POST een uniek iets toevoegen. Wat je dus in feite moet doen is dit:
Als iemand op de login pagina komt, stuur je d.m.v. php ook een hidden veld mee waarin een unieke key staat (een cijfer o.i.d.) Als het formulier vervolgens gesubmit wordt, stop je de username, het password en die key bijelkaar, en je encrypt het. Dan pas verstuur je de data naar je server. In je php script dat de login controleerd doe je hetzelfde, je voegt de username, het password en die key weer samen, en je encrypt dit. Vervolgens vergelijk je die 2 gegevens met elkaar, die zouden overéén moeten komen. Als de verzonden data dus anders was, klopt of het wachtwoord niet, of de username of er zat geen key bij/de key was fout.
Doordat je dus iedere keer een andere key gebruikt (random) kan iemand die die gegevens onderschept er niets mee, want de key is bij iedere aanvraag weer anders en dus kan hij/zij er nog niets mee
Nu weet ik niet of ik goed bezig ben .. ik zit ook beetje vast..
ik doe hetvolgende :
- client roept site op(hier wordt ook inlog.php in geladen)
- in inlog.php maak ik een unieke random string die elke keer verschillend is en
deze sla ik op in een sessie.
- deze sessie zet ik in een hidden field
<form name="login" method="post" onSubmit="maakCode();">
<input type="hidden" value="<? $_SESSION['random_password']?>">
- bij submit wordt maakCode() aangeroepen
daar maak ik de key..
en dan??
ik heb dan dan dit deel...
Maar bij het registreren zal het een andere random nr hebben , waardoor het anders in de db staat...
Ik ben bezig met login module. Nou wil ik dat het wachtwoord client site wordt versleuteld..
na wat zoeken leek me deze techniek het beste:
Je hebt een inlog script met 2 velden, een username veld en een password veld. Je wilt niet dat mensen je password kunnen onderscheppen, dus je encrypt dit d.m.v. javascript, maar als mensen nu het geëncrypte wachtwoord onderscheppen, kunnen ze nog steeds inloggen, ze kunnen immers de opgevangen data verzenden naar de server, dus wat je wilt is bij iedere POST een uniek iets toevoegen. Wat je dus in feite moet doen is dit:
Als iemand op de login pagina komt, stuur je d.m.v. php ook een hidden veld mee waarin een unieke key staat (een cijfer o.i.d.) Als het formulier vervolgens gesubmit wordt, stop je de username, het password en die key bijelkaar, en je encrypt het. Dan pas verstuur je de data naar je server. In je php script dat de login controleerd doe je hetzelfde, je voegt de username, het password en die key weer samen, en je encrypt dit. Vervolgens vergelijk je die 2 gegevens met elkaar, die zouden overéén moeten komen. Als de verzonden data dus anders was, klopt of het wachtwoord niet, of de username of er zat geen key bij/de key was fout.
Doordat je dus iedere keer een andere key gebruikt (random) kan iemand die die gegevens onderschept er niets mee, want de key is bij iedere aanvraag weer anders en dus kan hij/zij er nog niets mee
Nu weet ik niet of ik goed bezig ben .. ik zit ook beetje vast..
ik doe hetvolgende :
- client roept site op(hier wordt ook inlog.php in geladen)
- in inlog.php maak ik een unieke random string die elke keer verschillend is en
deze sla ik op in een sessie.
- deze sessie zet ik in een hidden field
<form name="login" method="post" onSubmit="maakCode();">
<input type="hidden" value="<? $_SESSION['random_password']?>">
- bij submit wordt maakCode() aangeroepen
daar maak ik de key..
en dan??
ik heb dan dan dit deel...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| if ($_POST['login']) { $loginnaam = $_POST['loginnaam']; $wachtwoord= md5($_POST['wachtwoord']); selecteerDB('db'); $query="SELECT * FROM gebruiker WHERE gebruikersnaam='$loginnaam' AND wachtwoord='$wachtwoord'"; $result=mysql_query($query); if (mysql_num_rows($result)==1) { $obj=mysql_fetch_object($result); //kijk of de gebruiker actief is. if($obj->geactiveerd=='0')echo"<script>alert('U bent niet (meer) geactiveerd en kunt niet inloggen.')</script>"; else { $_SESSION['gebruikersid'] =$obj ->id; $_SESSION['gebruikersnaam'] =$loginnaam; $_SESSION['gebruikerstype'] =$obj->type; $_SESSION['lokatieid'] = $obj-> lokatieid; echo"<SCRIPT>document.location.href='http://index.php'</script>"; } } |
Maar bij het registreren zal het een andere random nr hebben , waardoor het anders in de db staat...