• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • nieuwe game

    frio 1 november 2026 om 14:08
  • Criminolz

    qevanto 31 oktober 2026 om 20:52
  • [Beta] Ottomaan: gratis browserspel met een echte, levende stad. Feedback gezocht!

    frio 27 oktober 2026 om 12:22
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Jeroen.G 26 oktober 2026 om 10:33
  • Maffia Hotel: een browsergame waarin je van lobbygast naar spil van het hotel groeit

    eeyk 22 oktober 2026 om 18:43
  • Crime Club volledig herschreven vanaf nul

    frio 19 oktober 2026 om 23:57
  • Malavita (nieuwe maffia game, van 0)

    jos 19 oktober 2026 om 23:18
  • Herkent deze Notion-structuurscan echte problemen?

    Jeroen.G 19 oktober 2026 om 15:09

Marktplaats

  • [Aanbod] Stadskaart voor je browsergame: van menu naar klikbare stad, vanaf €200

    frio 29 oktober 2026 om 18:17
  • [Verkoop] G4G (Gangsters 4 Gangsters): volledige broncode, nieuw gebouwd in PHP 8.3 | € 30 per domein

    frio 27 oktober 2026 om 18:54
  • [TE KOOP] Malavita.be [Maffiaspel, gebaseerd op omicidio.nl, unieke code]

    Dpm_x 26 oktober 2026 om 00:22

Sleep() in login

  • YVMdesign
  • 3 maart 2010 om 18:59
  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 18:59
    • #1

    Ik heb een login gemaakt voor me crime spel.

    Ik heb ergens gelezen dat je sleep() kan gebruiken om brute-force tegen te gaan?

    Login

    PHP
    require("config.php");
    
    
    if (isset($_POST['submit']))
    {
    	// use sleep for anti brute-force
    	sleep(1);
    	
    	$query = mysql_query("SELECT * FROM `Members` WHERE `nickname`='" .$_POST['nickname']. "'")
    	
    	if (empty($_POST['nickname']) OR empty($_POST['password']))
    	{
    		echo("You forgot something");
    		header("Refresh: 5; url=index.php");
    		die;
    	}
    	elseif (mysql_num_rows($query) == 0)
    	{
    		echo("This nickname exist.");
    		header("Refresh: 5; url=index.php");
    		die;
    	}
    	else
    	{
    		$query = mysql_query("SELECT * FROM `Members` WHERE `nickname`='" .$_POST['nickname']. "'");
    		$result = mysql_fetch_assoc($query);
    		
    		if (md5($_POST['password']) == $result['password'])
    		{
    			echo("You are logged in, please wait 5 secondes.");
    			$_SESSION['nickname'] = strtolower($_POST['nickname']);
    			mysql_query("UPDATE `Members` SET `onlinetime`='"  .time(). "' WHERE `nickname`='" .strtolower($_POST['nickname']). "'");
    			header("Refresh: 5; url=index.php");
    			die;
    		}
    		else
    		{
    			echo("Wrong password.");
    			header("Refresh: 5; url=index.php");
    			die;
    		}
    	}
    }
    Meer tonen

    Heeft iemand nog beveiligings tips?

    Met vriendelijke groet,
    Youri

  • Gast, wil je besparen op je domeinnamen? (ad)
  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 19:01
    • #2

    Sleep gebruik je om het bruteforcen te vertragen, niet helemaal om het te stoppen, daarnaast beveilig de posts maar eens.. daar heb je denk ik meer aan

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 19:04
    • #3

    De inputs beveiligt.

    PHP
    require("config.php");
    
    
    if (isset($_POST['submit']))
    {
    	// use sleep for anti brute-force
    	sleep(1);
    	
    	// with mysql_real_escape_string
    	$nickname = mysql_real_escape_string($_POST['nickname']);
    	$password = mysql_real_escape_string($_POST['password']);
    	
    	$query = mysql_query("SELECT * FROM `Members` WHERE `nickname`='" .$nickname. "'")
    	
    	if (empty($nickname) OR empty($password))
    	{
    		echo("You forgot something");
    		header("Refresh: 5; url=index.php");
    		die;
    	}
    	elseif (mysql_num_rows($query) == 0)
    	{
    		echo("This nickname exist.");
    		header("Refresh: 5; url=index.php");
    		die;
    	}
    	else
    	{
    		$query = mysql_query("SELECT * FROM `Members` WHERE `nickname`='" .$nickname. "'");
    		$result = mysql_fetch_assoc($query);
    		
    		if (md5($password) == $result['password'])
    		{
    			echo("You are logged in, please wait 5 secondes.");
    			$_SESSION['nickname'] = strtolower($nickname);
    			mysql_query("UPDATE `Members` SET `onlinetime`='"  .time(). "' WHERE `nickname`='" .strtolower($nickname). "'");
    			header("Refresh: 5; url=index.php");
    			die;
    		}
    		else
    		{
    			echo("Wrong password.");
    			header("Refresh: 5; url=index.php");
    			die;
    		}
    	}
    }
    Meer tonen
  • Superior
    Meester
    Berichten
    1.947
    • 3 maart 2010 om 19:06
    • #4

    Je moet met SALT gaan werken wil je bruteforce en rainbowtable tegen houden.

    Tevens ga ik met Maaark zijn reactie mee, je inputs zijn zo onveilig.

  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 19:09
    • #5

    Inderdaad is salten ook een ding wat verbeterd kan worden.
    Daarnaast zou ik er ook een trim(); en strip_tags(); omheen gooien zodat de kans op XSS kleiner is

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 19:10
    • #6

    zo toch niet weer wat moet ik nog meer toepassen dan?

    mysql_real_escape_string

    is toch genoeg?

  • Superior
    Meester
    Berichten
    1.947
    • 3 maart 2010 om 19:14
    • #7

    YVMdesign
    mysql_real_escape_string() is inderdaad genoeg, is verder niks voor nodig.

    Alleen je wachtwoorden zijn nu heel erg zwak, md5() is online al een decryptie te vinden.
    Zou dus met een SALT werken dat is heel stuk veiliger ook voor je leden ;)

  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 19:14
    • #8

    Die houd in 't algemeen sql injections eruit. Html injections (XSS) kun je bovenstaande voor gebruikten, die trim is vooral omdat ik mij kapot erger op site's die spatie's in hun wachtwoordvergeten mail achter het wachtwoord hebben staan en copy pasten kut gaat..

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 19:20
    • #9

    Wat doet de trim functie precies, ik word niet wijzer van php.net?

    En van andere tuts ook niet echt.

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 3 maart 2010 om 19:22
    • #10

    trim() haalt wittekens aan het begin en eind van de string weg.
    Ook kun je nog een tweede parameter mee geven wat een string is die alle andere tekens bevat die je ook weg wilt hebben.

    miauw!

  • Superior
    Meester
    Berichten
    1.947
    • 3 maart 2010 om 19:23
    • #11

    Edit:
    Darsstar was weer eens sneller :p

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 19:25
    • #12

    Ok dankje,

    Moet ik nog wat dingen beveiligen voor een goede login?

  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 19:26
    • #13

    Trouwens @ line 22: this nickname exist Moet dat niet zijn This nickname doesn't exist?

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 19:28
    • #14

    Ja dat moet ja, verkeerd gezien :x

    Dankje.

  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 19:48
    • #15

    Daarnaast ook die backticks weghalen in je query's :)

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 19:58
    • #16

    Waarom moet dat??

    Zo word het overzichtelijker?
    Lijkt mij.

  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 20:01
    • #17

    http://wiki.phpfreakz.nl/Backticks

  • YVMdesign
    Gevorderd
    Berichten
    357
    • 3 maart 2010 om 20:21
    • #18

    Dus moet het zo doen?

    PHP
    $query = mysql_query("SELECT * FROM Members WHERE nickname='" .stripslashes($nickname). "'");
  • Maaark
    Leerling
    Berichten
    160
    • 3 maart 2010 om 20:44
    • #19

    Wat heb je dan nu bij $nickname = ?
    Daarnaats ook slim om niet alles van Members te selecten maar alleen wat je nodig hebt.

  • Superior
    Meester
    Berichten
    1.947
    • 3 maart 2010 om 20:49
    • #20

    Dus niet voor elke query een wildcard gebruiken (dus * )

    Voorbeeld:

    PHP
    //Ik moet hebben: gebruikersnaam, wachtwoord & email
    
    
    mysql_query("SELECT login,pass,email FROM Members WHERE...");

    Dat is wat Maaark in feite bedoelt :cheer:

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

ICT Nieuws

  • PHP waarschuwt voor twee ernstige bugs die makkelijk uit te buiten lijken

    Aaron 22 oktober 2026 om 22:19

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 2 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design