• 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

Formulieren Beveiligen [HELP!]

  • L. Velthuis
  • 7 maart 2014 om 11:35
  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 7 maart 2014 om 11:35
    • #1

    Hallo allemaal,

    ik heb een scriptje in elkaar gezet om mijn portfolio te voorzien van een 'admin panel'

    ik wil dat mensen via het contactformulier op mijn website iets in mijn database zetten (INSERT INTO), en dat ik ze vervolgens uit kan lezen op een bepaalde pagina op mijn site (het 'admin panel').

    dit is allemaal redelijk gelukt. Via het contactformulier kan ik de drie velden (naam, email, bericht) in mijn database zetten. en op een andere pagina kan ik ze weer opvragen.

    maar mijn vraag is nu: Hoe beveilig ik deze formulieren tegen sql injections / xss etc? Ik heb hier totaal geen verstand van en heb de formulieren ook aan de hand van een tutorial gemaakt.

    hier de scripts:

    process.php

    PHP
    <?php
    	//kijken of formulier is ingevuld en variabelen aanmaken
    	if(!empty($_POST)){
    	$name 					= $_POST['name'];
    	$emailaddress			= $_POST['emailaddress'];
    	$message				= $_POST['message'];
    	// Database Verbinden 
    	
    	require_once('config.php');
    	
    	// Query opzetten
    	
    	$query = "INSERT INTO emailmessages (name, emailaddress, message) VALUES ('".$name."', '".$emailaddress."', '".$message."')";
    	
    	// Alles naar de database versturen en teruglinken naar hoofdpagina.
    	if (mysqli_query($link, $query) == true) 
    	{
    		header("Location: success.html");
    		exit;
    	} else {
    		die("De gegevens zijn niet opgeslagen in de database.");
    		}
    	} else {
    	header("Location: index.html");
    	exit;
    	}
    ?>
    Toon Meer

    showemails.php

    PHP
    <?php
    
    
    	// Database Verbinden 
    	
    	require_once('config.php');
    	
    	// Query om berichten aan te roepen uit database
    	
    	$query = "SELECT * FROM emailmessages";
    	
    	// Laat gegevens zien op de pagina
    	
    	$result = mysqli_query($link, $query);
    	
    	while($row = mysqli_fetch_assoc($result))
    	{
    ?>
    <strong>Naam:</strong> <?php echo $row['name']; ?> </br>
    <strong>E-mail Adres:</strong> <?php echo $row['emailaddress']; ?> </br>
    <strong>Bericht:</strong> <?php echo $row['message']; ?> </br>
    
    
    	</br>
    	</br>
    	<hr>
    <?php
    	}
    ?>
    Toon Meer


    en verder het stukje html van het formulier.

    PHP
    <form method="post" action="process.php">
    								<div class="row half">
    									<div class="6u"><input type="text" class="text" name="name" placeholder="Naam" /></div>
    									<div class="6u"><input type="text" class="text" name="emailaddress" placeholder="E-Mail" /></div>
    								</div>
    								<div class="row half">
    									<div class="12u">
    										<textarea name="message" placeholder="Bericht"></textarea>
    									</div>
    								</div>
    								<div class="row">
    									<div class="12u">
    										<a href="#" class="button submit">Verstuur Bericht</a>
    									</div>
    								</div>
    							</form>
    Toon Meer


    edit:

    nu heb ik volgend script gevonden op internet, en ik heb gelezen dat je deze bovenin de pagina moest includen om het tegen sql injection te beveiligen?

    maar werkt dit script ook voor mijn formulier?

    PHP
    <?php
      // bescherming tegen mysql injection
      function quote_smart($value)
      {
          if (get_magic_quotes_gpc()) {
              $value = stripslashes($value);
          }
          if (version_compare(phpversion(), "4.3.0") == "-1") {
              return mysql_escape_string($value);
          } else {
              return mysql_real_escape_string($value);
          }
      }
      
      function check_array(&$array)
      {
          foreach ($array as $key => $value) {
              $value = quote_smart($value);
              $array[$key] = $value;
          }
      }
      
      if ($_SERVER['REQUEST_METHOD'] == 'POST') {
          check_array($_POST);
      }
      if ($_SERVER['REQUEST_METHOD'] == 'GET') {
          check_array($_GET);
      }
    ?>
    Toon Meer

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

    Bewerkt één keer, laatst door L. Velthuis (7 maart 2014 om 11:42).

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Tim
    Enlightened
    Ontvangen Reacties
    77
    Berichten
    3.686
    • 7 maart 2014 om 11:43
    • #2

    Hallo,

    Dit doe je door te zoeken naar wat een xxs aanval precies inhoud en hoe je dit kan voorkomen. Zelfde geld voor SQL injecties.
    Zodra je het begrijpt kan je het voorkomen. Vaak staat bij een uitleg hoe het werkt ook een uitleg hoe je het kan voorkomen.

    Oftewel, verdiep je er even in en je zult het zelf kunnen toepassen ;)

    Mvg,
    Tim

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 7 maart 2014 om 11:46
    • #3
    Citaat van Tim

    Hallo,

    Dit doe je door te zoeken naar wat een xxs aanval precies inhoud en hoe je dit kan voorkomen. Zelfde geld voor SQL injecties.
    Zodra je het begrijpt kan je het voorkomen. Vaak staat bij een uitleg hoe het werkt ook een uitleg hoe je het kan voorkomen.

    Oftewel, verdiep je er even in en je zult het zelf kunnen toepassen ;)

    Mvg,
    Tim


    Hallo tim,

    heb er al veel over gelezen maar ik zie dan allemaal scripts die totaal niet op die van mij lijken, waardoor ik heel snel in de war raak. Dus ik had gehoopt dat iemand mij dit verder uit kan leggen aan de hand van mijn gepostte scripts.

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

  • phpert
    Beginner
    Berichten
    22
    • 7 maart 2014 om 15:28
    • #4

    showemails: bekijk de functie htmlentities, je echo't de waarde maar eventuele xss ga je tegen met htmlentities
    process: bekijk de functie mysqli::real_escape_string (of overweeg PDO met prepared statements)

    dat laatste stukje is voor de oude mysql_* functionaliteiten, jij gebruikt mysqli (i => improved). kan werken, maar beveiligd niet optimaal.

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 7 maart 2014 om 16:09
    • #5
    Citaat van phpert

    showemails: bekijk de functie htmlentities, je echo't de waarde maar eventuele xss ga je tegen met htmlentities
    process: bekijk de functie mysqli::real_escape_string (of overweeg PDO met prepared statements)

    dat laatste stukje is voor de oude mysql_* functionaliteiten, jij gebruikt mysqli (i => improved). kan werken, maar beveiligd niet optimaal.


    heb je skype? zou je mij dan jouw skype naam toe kunnen sturen via privé bericht?

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

  • Reza
    Professional
    Ontvangen Reacties
    13
    Berichten
    1.536
    • 7 maart 2014 om 16:48
    • #6

    http://stackoverflow.com/questions/6017…njection-in-php : Hier raden ze preprared statements aan, dit is dan ook het veiligste om te doen en in mijn ogen het makkelijkste aangezien je niks meer met real_escape_string hoeft te doen of met trim etc.

    Wil je het toch zonder prepared statements doen raad ik je aan op te zoeken welke functie voor wat precies bestemd is. htmlspecialchars() is bijvoorbeeld voor een HTML input en trim() kan bijvoorbeeld enters verwijderen in een string.
    Stel dat je alleen een getal wilt laten invoeren kun je een controle doen met is_numeric() of met ctype_digit(), zo kan de gebruiker alleen nog maar cijfers invoeren.

    Met vriendelijke groet,
    Reza.

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 9 maart 2014 om 18:01
    • #7

    Bedankt reza!

    heb het artikel gelezen maar wordt er echt niets wijzer uit.
    iemand dij mij via skype kan helpen?

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

  • phpert
    Beginner
    Berichten
    22
    • 10 maart 2014 om 09:52
    • #8

    skype wordt alleen gebruikt voor (betaalde) support, ga ik je portemonnee niet aan doen ;)

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 10 maart 2014 om 11:03
    • #9

    Iemand die dit wel zou kunnen doen? Gratis?

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

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