[MYSQL] Query beveiligen

Gestart doorWouterp14 reacties32 weergaven

15 berichten · pagina 1 van 1

Wouterp

Lid · Topicstarter

Berichten
1.631
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hey One2xsers,

Ik zie teveel topics over een query beveiligen. Ik weet dat dit in tutorials hoort maar misschien een sticky voor de startende coders?

Hier komt die:

Waarom beveiligen?
Je beveiligt een query om ervoor te zorgen dat hackers niet in je database kunnen.

Hoe?
Dat is voor de meeste van jullie de vraag.
Een onbeveiligde query:

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM leden WHERE id="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]""[/COLOR][COLOR= #007700]);[/COLOR]


Waarom is dit fout?
We vergeten mysql_real_escape_string() te gebruiken. Als we mysql_real_escape_string() gebruiken zorgen we ervoor dat de "hacker" geen toegang kan krijgen tot jouw database.

Waar moet ik mysql_real_escape_string() gebruiken?
Als een gebruiker kan bepalen wat er in een query komt dus bij:
Alle veriabelen
$_POST
$_GET
$_COOKIE

Een voorbeeld hoe het WEL moet:

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM leden WHERE id="[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/mysql_real_escape_string"]mysql_real_escape_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]]).[/COLOR][COLOR= #DD0000]""[/COLOR][COLOR= #007700]);[/COLOR]


Hoe het NIET moet:

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/mysql_real_escape_string"]mysql_real_escape_string[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM leden WHERE id="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]""[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"mysql_real_escape_string(SELECT * FROM leden WHERE id="[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]""[/COLOR][COLOR= #007700]));[/COLOR]
?>


Nog vragen?
0
Thom

Lid

Berichten
10.654
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Handig!

Om $_COOKIE moet toch ook mysql_real_escape_string?
0
Wouterp

Lid · Topicstarter

Berichten
1.631
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kan word vaak niet gedaan zal hem erbij zetten.
0
Thom

Lid

Berichten
10.654
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Oki.
Ik zag het bij andere posts dat ze zeiden dat je het om get post en cookie moet zetten dus vandaar ^^
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Thommity schreef:
Handig!

Om $_COOKIE moet toch ook mysql_real_escape_string?

Yes, GET, POST en COOKIE

Ik vind de tutorial kort door de bocht:
Quote:
Waarom beveiligen?
Je beveiligt een query om ervoor te zorgen dat hackers niet in je database kunnen.

Dus als iemand met brute-force in phpMyAdmin je wachtwoord raadt, helpt mysql_real_escape_string() dan ook?

Leg liever uit wat die functies exact doet, als je toch een tutorial schrijft.
0
Wouterp

Lid · Topicstarter

Berichten
1.631
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik probeer het in Jip en Janneke taal. Probeer het anders zelf ?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Wouterp schreef:
Ik probeer het in Jip en Janneke taal. Probeer het anders zelf ?
Waarom ik?
Jij wilt een tutorial schrijven? EN ik geef wat opbouwend kritiek, dus je kan zelf wel wat meer research doen, lijkt me?
0
Berichten
5.795
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Dus als iemand met brute-force in phpMyAdmin je wachtwoord raadt, helpt mysql_real_escape_string() dan ook?

Leg liever uit wat die functies exact doet, als je toch een tutorial schrijft.
De meeste mensen hier die hebben geen eigen server draaien maar een simpel hostje.
De hoster zal voor dit soort aanvallen wel een notificatie systeem hebben, dus dat voorbeeld over brute-force is hier niet echt van toepassing.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Maar het is een voorbeeld van dat de tutorial kant noch wal raakt in mijn ogen. En wat heeft een eigen server nou met dit topic te maken?

Het is een voorbeeld, zoals ik al zei.
0
Berichten
5.795
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Maar het is een voorbeeld van dat de tutorial kant noch wal raakt in mijn ogen. En wat heeft een eigen server nou met dit topic te maken?

Het is een voorbeeld, zoals ik al zei.
Sommige mensen met vps/eigen server die hebben dit niet zo beveiligd.
Veel hosters gebruiken toepassingen zoals fail2ban en dergelijke.
0
Berichten
21.633
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Simpel maar toch erg belangrijk.
Goede tut.
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Moet dit niet bij tutorials?
0
Wouterp

Lid · Topicstarter

Berichten
1.631
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Moet dit niet bij tutorials?
Wouterp schreef:
Hey One2xsers,
Ik zie teveel topics over een query beveiligen. Ik weet dat dit in tutorials hoort maar misschien een sticky voor de startende coders?

Lezen?
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Wouterp schreef:
Eerdere citaten tonen
Dylanh schreef:
Moet dit niet bij tutorials?
Eerdere citaten tonen
Wouterp schreef:
Hey One2xsers,
Ik zie teveel topics over een query beveiligen. Ik weet dat dit in tutorials hoort maar misschien een sticky voor de startende coders?

Lezen?
Sorry.emo
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren