Goedenavond.
Ik heb een vraag, ik ben een website aan het maken en wil hem ook meteen beveiligen tegen injecties. Nu loop ik vast bij het inlogscherm. Hij herkent op de 1 of andere manier niet of de leden zijn geactiveerd en of ze hun goede gebruikersnaam en wachtwoord hebben ingevuld als ik de mysqli_real_escape string plaats.
Dit is een stukje script waar het omgaat.
Dit moet het eigenlijk worden.Code:$activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".$_POST['gebruiker']."'") or die(mysqli_error()); $activatie = mysqli_fetch_assoc($activatie);
Zodra ik die escape string weghaal doet het inloggen het wel en als ik hem zo plaats zoals hierboven en hieronder doet die het weer niet.Code:$_POST['gebruiker'] = mysqli_real_escape_string($_POST['gebruiker']); $activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".$_POST['gebruiker']."'") or die(mysqli_error()); $activatie = mysqli_fetch_assoc($activatie);
Wie weet waar de fout ligt?Code:$activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".mysqli_real_espcape_string($_POST['gebruiker'])."'") or die(mysqli_error()); $activatie = mysqli_fetch_assoc($activatie);
- Website beveiligen
-
05-03-2018, 18:20 #1
- Berichten
- 103
- Lid sinds
- 13 Jaar
Website beveiligen
-
In de schijnwerper
-
06-03-2018, 08:12 #2
- Berichten
- 15
- Lid sinds
- 17 Jaar
Re: Website beveiligen
Goedenavond.
Ik heb een vraag, ik ben een website aan het maken en wil hem ook meteen beveiligen tegen injecties. Nu loop ik vast bij het inlogscherm. Hij herkent op de 1 of andere manier niet of de leden zijn geactiveerd en of ze hun goede gebruikersnaam en wachtwoord hebben ingevuld als ik de mysqli_real_escape string plaats.
Dit is een stukje script waar het omgaat.
Code:$activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".$_POST['gebruiker']."'") or die(mysqli_error()); $activatie = mysqli_fetch_assoc($activatie);
Code:$_POST['gebruiker'] = mysqli_real_escape_string($_POST['gebruiker']); $activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".$_POST['gebruiker']."'") or die(mysqli_error()); $activatie = mysqli_fetch_assoc($activatie);
Code:$activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".mysqli_real_espcape_string($_POST['gebruiker'])."'") or die(mysqli_error()); $activatie = mysqli_fetch_assoc($activatie);
Als eerste heb je in je escape_string. een verkeerde bewoording. Het moet "mysqli_real_escape_string()" zijn. Daarbij als je ook maar even zoekt op mysqli_real_escape_string dan kun je lezen dat je de database connectie erin moet vermelden. In dit geval word je query dus:
PHP Code:$activatie = $db->query("SELECT * FROM `gebruikers` WHERE `gebruikersnaam`='".mysqli_real_escape_string($db, $_POST['gebruiker'])."'") or die(mysqli_error());
$activatie = mysqli_fetch_assoc($activatie);
Nog beter advies? Please stop with what you are doing and go find another hobby. Dit zijn allemaal basic vragen welke je lukraak hier op sitedeals vraagt zonder enig zelf onderzoek te doen. Je hebt hier talloze partijen voor:
- Google
- Stackoverflow
- ...
- ...
-
06-03-2018, 08:13 #3
- Berichten
- 4.969
- Lid sinds
- 17 Jaar
Re: Website beveiligen
Hoezo moet hij ermee stoppen.
Je moet toch ergens beginnen? Denk niet dat jij 100% weet op programmeergebied, of wel?
-
06-03-2018, 08:15 #4
- Berichten
- 15
- Lid sinds
- 17 Jaar
Re: Website beveiligen
Bosman,
Ik heb zelf oorspronkelijk geleerd dat je zelf onderzoek moet doen naar problemen en oorzaken en functionaliteit hoe dit zou dienen te werken.
De vragen en problemen welke hier naar voren komen zijn binnen 1 minuut te verhelpen / op te lossen wanneer je echter googled of gebruik maakt van stackoverflow.
Zijn andere topic net zo..
Ik heb nergens gezegd dat ik alles weet op het gebied van programmeren. Maar wel dat deze manier niet de manier is hoe je het leert ;-) Maar hé dit is zijn topic. Laten we het niet naar mij toe trekken ;-)
-
06-03-2018, 08:16 #5
- Berichten
- 4.969
- Lid sinds
- 17 Jaar
Re: Website beveiligen
Ik ben het met je eens dat eerst Google-en wel een vereiste is voordat je hier om hulp graat vragen ;)
-
06-03-2018, 14:55 #6
- Berichten
- 65
- Lid sinds
- 13 Jaar
Re: Website beveiligen
Ik laat deze wel even hier: http://www.phptherightway.com/
Veel succes met je website!
-
06-03-2018, 21:15 #7
- Berichten
- 15
- Lid sinds
- 17 Jaar
Re: Website beveiligen
-
07-03-2018, 06:26 #8
- Berichten
- 540
- Lid sinds
- 17 Jaar
Re: Website beveiligen
http://php.net/manual/en/function.my...ape-string.php
Deze functie is binnenkort niet meer beschikbaar. Ik raad je aan om direct met php 7 te gaan werken. Dat scheelt je in de toekomst heel veel tijd.
Kijk en gebruik ondertussen PDO zie
https://www.w3schools.com/php/php_mysql_connect.asp
-
07-03-2018, 07:41 #9
- Berichten
- 15
- Lid sinds
- 17 Jaar
Re: Website beveiligen
http://php.net/manual/en/function.my...ape-string.php
Deze functie is binnenkort niet meer beschikbaar. Ik raad je aan om direct met php 7 te gaan werken. Dat scheelt je in de toekomst heel veel tijd.
Kijk en gebruik ondertussen PDO zie
https://www.w3schools.com/php/php_mysql_connect.asp
http://php.net/manual/en/mysqli.real-escape-string.php
-
07-03-2018, 08:15 #10
- Berichten
- 487
- Lid sinds
- 15 Jaar
Re: Website beveiligen
Euhm, de topicstarter gebruikt al MySQLi_real_escape_string deze is niet deprecated in PHP 7 ;-)
http://php.net/manual/en/mysqli.real-escape-string.php
Neemt niet weg dat prepared statements beter zijn, voorkomen is beter dan genezen met side-functions.
http://php.net/manual/en/mysqli.prepare.php
-
07-03-2018, 14:45 #11
- Berichten
- 15
- Lid sinds
- 17 Jaar
Re: Website beveiligen
Neemt niet weg dat prepared statements beter zijn, voorkomen is beter dan genezen met side-functions.
http://php.net/manual/en/mysqli.prepare.php
-
07-03-2018, 16:07 #12
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: Website beveiligen
Leer je nu eerst eens hoe je het beste kunt debuggen, ipv. te vragen waar de fout ligt.
Als je zoiets gruwelijks als die(mysqli_error()) gebruikt dat alleen enigszins acceptable is tijdens ontwikkeling, dan kun je ook eerst je sql statement in een variabele duwen, die echoën en dan phpmyadmin pasten om te kijken waarom het niet werkt.
In dit stukje zit zoveel fout....
- backticks in sqlstatements
- incorrente/missende parameters in functies
- overschrijven van globale en locale variabelen
- post vars direct in sql statements gebruiken zonder prepare
- een OO style query doen en dan procedureel weer uitlezen... choose ONE!
Vergeet gewoon alles wat je gelezen hebt, begin opnieuw en als je iets googled, zorg dat het van 2017 of recenter is.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic