• 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

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18: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
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07

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

  • Guest, wil je besparen op je domeinnamen? (ad)
  • 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

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

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. 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