Het formulier

Natuurlijk begint alles met een formuliertje dat je invult:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form action="login.php">
  Gebruikersnaam:<input type="text" name="username" />
  Wachtwoord:<input type="password" name="password" />
  <input type="submit" value="Login" />
</form>


De ervaren mensen zullen het meteen zien: hier ontbreekt nogal wat aan.

Ten eerste, er staat geen method in het formulier.
Daardoor zal er dus automatisch de GET methode gebruikt worden, oftewel: iedereen die achter je staat zal in de browser je wachtwoord/gebruikersnaam kunnen lezen!
Dus; toevoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
method="post"

Ten tweede, veel mensen hebben de slechte gewoonte om wachtwoorden op te slaan.
Dit valt (voor sommige browsers, IE zeker) te voorkomen. Dit door het name atribut te verwijderen en daarvoor in de plaats alleen een id velt te gebruiken.
Het goede formulier wordt dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form action="login.php" method="post">
  Gebruikersnaam:<input type="text" name="username" />
  Wachtwoord:<input type="password"id="password" />
  <input type="submit" value="Login" />
</form>


Als je nu het vooraf gaande login formulier gebruikt en je drukt op verzenden zullen je gegevens verstuurt worden naar de server. Niks mis mee zal je vast denken, niet helemaal.
Als je zou inloggen zou de hacker de verzonden data kunnen onderscheppen en alles ligt dan zo voor z'n neus. Hoe te voorkomen?
Simpel, client-side het wachtwoord hashen, dus zeg maar een soort javascript sha1() functie gebruiken.
Download hier of zie laatste pagina van deze tutorial voor als hij een dode link aangeeft.
De nieuwe code wordt dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript" src="sha1.js"></script>

<script type="text/javascript">
function _submit() {
  document.getElementById('password_encrypted').value = hex_sha1(document.getElementById('password').value);
  document.getElementById('password').value = '';
  }
</script>

<form action="login.php" method="post" onsubmit="return _submit();">
  Gebruikersnaam:<input type="text" name="username" />
  Wachtwoord:<input type="password" id="password" />
  <input type="hidden" name="password_encrypted" value="" />
  <input type="submit" value="Login" />
</form>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Het formulier
  3. Formulier verwerken
  4. JavaScript Secure Hash Algorithm, SHA1

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.