• 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

PHP/SQL Systeem veiligheid

  • Michael.
  • 3 juni 2014 om 21:55
  • Michael.
    Beginner
    Ontvangen Reacties
    1
    Berichten
    40
    • 3 juni 2014 om 21:55
    • #1

    Hey mensen!

    Ik heb laast begonnen met PHP/SQL progammeren.
    Het lukt me al aardig, en ik wil gaan beginnen aan een forum.(Heb al een login, registratie systeem, onlinebar, en usermanagement)
    Nou vroeg ik me af of alles veilig is, en ik aan een forum kan beginnen/afmaken.
    Zou iemand mijn registratie systeem willen nakijken?
    Ik gebruik al real_escape_string, en query's in een if statement.
    Hartelijk dank

    Gelieve niet te reageren op mijn script style ect, maar puur of het veilig is of efficient geschreven is.
    (Captcha heb ik er even uitgehaald)


    Hier is mijn code:

    PHP
    <?php
    // PHP SYSTEEM
    if($user == false){
    	
    } elseif ($user == true){
    		echo "<script> window.location.href = '?page=home';</script>";
    }
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
    	
    if(isset($_POST['username']) && !empty($_POST['username']) AND isset($_POST['email']) && !empty($_POST['email']) AND isset($_POST['password']) && !empty($_POST['password']) AND isset($_POST['password2']) && !empty($_POST['password2'])){
    	    
    		
    		   //Check of passworden overeen komen
    		   if($_POST['password'] == $_POST['password2']){
    				
    				// Beveiliging
    				$password = hash('SHA512', $salt.$_POST['password']);
    				$password2 = hash('SHA512', $salt.$_POST['password2']);
    				$username = $connect->real_escape_string($_POST['username']);
    				$email = $connect->real_escape_string($_POST['email']);
    				$key = $connect->real_escape_string($_POST['key']);	
    						
    				if($checkkey = $connect->query("SELECT * FROM `codes` WHERE code='$key' && used='0'")){
    					$workskey = $checkkey->num_rows;
    					  if($workskey == 0){
    						echo "<h3>Key not valid, or already used!</h3>";
    					  } else {
    						 if($updatekeys = $connect->query("UPDATE `codes` SET used='1' WHERE code='$key'")){
    							 if($update2keys = $connect->query("UPDATE `codes` SET used_by='$username' WHERE code='$key'")){
    							    if($update3keys = $connect->query("UPDATE `codes` SET used_date=NOW() WHERE code='$key'")){
    							   
    							   
    					                  //Username Check
    					                  if($checkusername = $connect->query("SELECT * FROM users WHERE username='$username'")){
    					                     $checkusername2 = $checkusername->num_rows;
    					                     if($checkusername2 > 0){
    							                echo "Username already used!!";
    							
    						                  } else {
    							
    							                //Email check
    						                    if($checkemail = $connect->query("SELECT * FROM users WHERE email='$email'")){
    							                   $checkemail2 = $checkemail->num_rows;
    							                      if($checkemail2 > 0){
    								                     echo "Email already used in database!";
    							                      } else {	
    												  
    								                   //INSERT INFORMATION Query
    							                       $query = "INSERT INTO users(username, password, email, rank, last_move, ipadress, agent, banned, ban_reason) 
    												    VALUES ('$username','$password','$email', '1', NOW(), '$user_ip','$user_agent', '0', '-1')";  
    									           				
    							                          if($insertinfo = $connect->query($query)){
    								                          echo "<p>You successfully registered a account. Now you can login!</p>";
    										                  echo "<script type='text/javascript'>
    										                        window.setTimeout(function() {
    										                        window.location.href = '?page=home';
    										                        }, 5000);
    										                        </script>
    										                        ";
    							          
    													  }//Insert Query end
    												  }// End mail test (Of hij al in de database staat)
    											} else { // End en Else in Emailcheck
    								              echo "<h3>ERROR</h3>";
    											}
    											
    											}// End Username check(Of hij al in de database staat) 
    					                  }	// END username check	
    										  
    					
    					             } // Key update 3 END
    					          } // Key update 2 END
    				           } // Key update 1 END
    				  } // End key (Als hij fout is)
    			} // END checkkey
    		} else {// Passworden komen niet overheen
    		  echo '<h3>Passwords are not the same!</h3>';
    		}
    						
    	} //Check passwords
    				
    
    
    				
    } else {
    
    
    	
    //HTML FORM
    ?>
    	<h1>Register</h1>
        <form action="" method="post">
    		
    				<table style="color:black;">
    					<tr>
    						<td>Username*:</td>
    						<td><input type="username" name="username" maxlength="16" ></td>
    						<td>Will be shown on the site.</td>
    					</tr>
    					<tr>
    						<td>Password*:</br></td>
    						<td><input type="password" name="password"></td>
    						<td>Your password*.</td>
    					</tr>
    					<tr>
    						<td>Password check*:</br></td>
    						<td><input type="password" name="password2"></td>
    						<td>Repeat password.</td>
    					</tr>
    					<tr>
    						<td>E-mail*:</br></td>
    						<td><input type="email" name="email"></td>
    						<td>Your emailadress</td>
    					</tr>
    					<tr>
    						<td>Key*:</br></td>
    						<td><input type="text" name="key"></td>
    						<td>I need to register(If you dont got one, read the homepage.</td>
    					</tr>                    
    					<tr>
    						<td>
    							<input type="submit" class="button-success pure-button" value="Register">
    						</td>
    					</tr>
    				</table>
    			</form>
                <?php } ?>
    Toon Meer
  • Guest, wil je besparen op je domeinnamen? (ad)
  • Dees
    Elite members
    Ontvangen Reacties
    64
    Articles
    1
    Berichten
    358
    • 3 juni 2014 om 22:01
    • #2

    Misschien eerst zorgen dat alles netjes is ingesprongen voordat je het hier neerzet. Kijkt wel wat makkelijker en fijner voor ons!

    Met vriendelijke groet,

    Dees

  • Michael.
    Beginner
    Ontvangen Reacties
    1
    Berichten
    40
    • 3 juni 2014 om 22:03
    • #3
    Citaat van dees040

    Misschien eerst zorgen dat alles netjes is ingesprongen voordat je het hier neerzet. Kijkt wel wat makkelijker en fijner voor ons!


    Ja ik weet het, kreeg het maar niet normaal.
    Maar nu is het weer normaal :)

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 4 juni 2014 om 09:15
    • #4

    Mag ik vragen waarom je niet met prepared statements werkt, mysqli prepared statements ?

    - Gebruik geen wildcards (*) in je query, roep alleen aan wat nodig is dit scheelt tijd om je pagina te laden.
    - Je zet je wachtwoorden 2x in een SHA512 maar je slaat 1 versie ervan op, waarom is dit ?

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 4 juni 2014 om 10:01
    • #5

    Was Real Escape string niet een betje verouderd?

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 4 juni 2014 om 10:19
    • #6

    Escape strong is verouderd. Nu moet je dus real escape doen

  • P.Yntema
    Intermediate
    Ontvangen Reacties
    7
    Berichten
    185
    • 4 juni 2014 om 16:00
    • #7

    Leuk dat je met PHP begonnen bent, is een erg belangrijke taal als je iets met websites wilt gaan doen.

    Je zou i.p.v. real escape string ook stripslashes kunnen gebruiken. Het valt me ook op dat je erg veel if functies in elkaar hebt, misschien is het handiger om hier een switch statement te gebruiken.

    Om het script wat efficienter te schrijven zou ik je aanraden om met functies te gaan werken. :)

    Bezig met een nieuw project: overhoorprogramma. Laat weten wat je ervan denkt. :)

  • Reza
    Professional
    Ontvangen Reacties
    13
    Berichten
    1.536
    • 4 juni 2014 om 16:46
    • #8

    Als je kijkt naar efficiënt programmeren dan zou ik verder kijken dan alleen één systeem/script. Ik zie bijvoorbeeld dat stukje waarbij je controleert of de gebruik al ingelogd is, dit kun je bijvoorbeeld in een functie zetten en het zo aanroepen.
    Dit is handiger omdat je dat kleine stukje niet in elk script hoeft te zetten waar dat nodig is, en aanpassingen maken gaat sneller.

    Als ik kijk naar veiligheid heb ik maar een tip en dat is gebruik maken van prepared statements.
    Veel veiliger, zo hoef je ook niet meer POST waardes te beveiligen met een real escape string of met strip_tags.

    http://phphulp.jorendewit.nl/view/26/5/
    Hier vind je een tutorioal over hoe je een prepared statement kunt maken, zelf heb ik het boven helaas niet uitgebreid uitgelegd, daarom de link die ik heb gegeven. Anders kun je ook nog een PB sturen indien je vragen hebt.

    Met vriendelijke groet,
    Reza.

  • Michael.
    Beginner
    Ontvangen Reacties
    1
    Berichten
    40
    • 4 juni 2014 om 19:33
    • #9

    Bedankt voor jullie reacties.

    Maar als ik goed begrepen heb zijn er geen veiligheid problemen?
    En ik ga prepared statements leren :)

  • P.Yntema
    Intermediate
    Ontvangen Reacties
    7
    Berichten
    185
    • 4 juni 2014 om 19:42
    • #10

    Btw ik raad je zoiezo de website aan die Reza al heeft gepost, is een duidelijke website en is ook nog eens in het Nederlands geschreven (wat het soms een stuk makkelijker maakt).

    Bezig met een nieuw project: overhoorprogramma. Laat weten wat je ervan denkt. :)

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