• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Ictscripters Chat

    Servertjee 21 februari 2026 om 19:29
  • Help testers nodig voor android app Urgent

    Servertjee 20 februari 2026 om 12:07
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    Servertjee 20 februari 2026 om 12:06
  • Afspraken systeem met planbeperking

    Jeffrey.Hoekman 20 februari 2026 om 11:52
  • Developer Gezocht

    Servertjee 19 februari 2026 om 17:31
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Servertjee 18 februari 2026 om 16:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09

Marktplaats

  • Meerdere mafia game template te koop

    Syntax 16 februari 2026 om 13:34
  • Verschillende domeinnamen los te koop

    zwpgangster 12 februari 2026 om 16:05
  • Verschillende domeinen

    Syntax 8 februari 2026 om 09:57

Sleep() in login

  • YVMdesign
  • 3 maart 2010 om 18:59
  • YVMdesign
    Intermediate
    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;
    		}
    	}
    }
    Toon Meer

    Heeft iemand nog beveiligings tips?

    Met vriendelijke groet,
    Youri

  • Maaark
    Student
    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
    Intermediate
    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;
    		}
    	}
    }
    Toon Meer
  • Superior
    Master
    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
    Student
    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
    Intermediate
    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
    Master
    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
    Student
    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
    Intermediate
    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
    Master
    Berichten
    1.947
    • 3 maart 2010 om 19:23
    • #11

    Edit:
    Darsstar was weer eens sneller :p

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

    Ok dankje,

    Moet ik nog wat dingen beveiligen voor een goede login?

  • Maaark
    Student
    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
    Intermediate
    Berichten
    357
    • 3 maart 2010 om 19:28
    • #14

    Ja dat moet ja, verkeerd gezien :x

    Dankje.

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

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

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

    Waarom moet dat??

    Zo word het overzichtelijker?
    Lijkt mij.

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

    http://wiki.phpfreakz.nl/Backticks

  • YVMdesign
    Intermediate
    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
    Student
    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
    Master
    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:

Participate now!

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

Maak een account aan Login

ICT Nieuws

  • Tech Trends 2026: AI, Cloud en Cybersecurity

    K.Rens 20 februari 2026 om 21:47
  • AI-vraag zet ook opslagmarkt onder druk: harde schijven dreigen schaarser te worden

    K.Rens 20 februari 2026 om 21:01
  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55

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
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design