login  Naam:   Wachtwoord: 
Registreer je!
 Forum

veilige registratie

Offline W0etah - 11/11/2006 12:56 (laatste wijziging 11/11/2006 13:59)
Avatar van W0etahPHP beginner ik heb nu een registratie gemaakt, maar ben niet zeker of hij wel veilig is.

http://www.plaatscode.be/3086/

als je weet hoe het veiliger kan, alle hulp is welkom

EDIT: heb er nog wat aan veranderd

10 antwoorden

Gesponsorde links
Offline Stijn - 11/11/2006 13:27 (laatste wijziging 11/11/2006 13:36)
Avatar van Stijn PHP expert lijn 8: na $title nog een puntkomma!
lijn 31: vervang eens door:
  1. <?php
  2. ...
  3. if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  4. ...
  5. ?>

lijn 41: kijken of de e-mail wel correct is?

  1. <?php
  2. ...
  3. if( preg_match("#\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}#si" , $_POST['email'] ) ) {
  4. $email = $_POST['email'];
  5. } else {
  6. die( 'e-mail adres is ongeldig!' );
  7. }
  8. ...
  9. ?>

lijn 43-57: kan je op een andere en betere manier doen

  1. <?php
  2. ...
  3. if( empty( $gebruikersnaam ) === true || isset( $gebruikersnaam ) === false) {
  4. die('U heeft geen gebruikersnaam ingevuld'); // vervang alle echo's met die die(); functie
  5. } // dit herhaal je nu voor die andere ook!
  6. ...
  7. ?>


groeten
stijn

[edit]

@jexus: ok.
Offline Richard - 11/11/2006 13:32
Avatar van Richard Crew algemeen
Citaat:
[..code..]


Geen veilige regex;) Je mist de anchors voor het matchen aan begin en eind van de string

  1. '#^\w+@[a-z_]+\.[a-z]{2,6}$#i'


Aangezien je de 'i' modifier gebruikte hoef je niet [a-zA-Z] te doen, en de 's' modifier was overbodig, omdat je geen '.' hebt staan die niet ge-escaped is...

Citaat:
[..code..]


empty() controleert ook of een variabele geset is, isset() is hier dus overbodig. Je hoeft ook niet te controleren op een true waarde, omdat de teruggave van empty() de if al data oplevert hiervoor:

  1. if (empty ($gebruikersnaam)) {
Offline W0etah - 11/11/2006 13:37
Avatar van W0etah PHP beginner bedankt, ik hbe dit verandert in het script, maar ik zit met een probleem, hij blijft maar zeggen dat mijn wachtwoord enkel uit alfanumerieke tekens mag bestaan terwijl ik er gewoon "test" typ
Offline Richard - 11/11/2006 13:46
Avatar van Richard Crew algemeen Waar staat die controle dan? Ik zie het nergens staan...
Offline W0etah - 11/11/2006 13:47
Avatar van W0etah PHP beginner regel 52
Offline Stijn - 11/11/2006 13:55
Avatar van Stijn PHP expert regel 52 is dit:

  1. echo "U heeft geen website ingevuld";

:s
Offline W0etah - 11/11/2006 13:59
Avatar van W0etah PHP beginner sry, was vergeten de code te update

http://www.plaatscode.be/3086/
Offline Stijn - 11/11/2006 14:12
Avatar van Stijn PHP expert
  1. } elseif(!preg_match("^[a-zA-Z0-9]$", $wachtwoord)) {

-->
  1. } elseif(!preg_match("#^[a-zA-Z0-9]+$#si", $wachtwoord)) {

nu zou die moeten werken.
Offline Richard - 11/11/2006 14:18
Avatar van Richard Crew algemeen Je kunt in dit geval beter PHP.net: ctype_alnum gebruiken, dat is sneller;)
Offline W0etah - 11/11/2006 14:18
Avatar van W0etah PHP beginner nu werkt hij, bedankt voor al deze informatie
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.353s