Of je GET of POST gebruikt maakt helemaal niets uit voor de behandeling van de invoer. Het is en blijft user input, en dat is niet te vertrouwen.quote:Op zaterdag 21 april 2012 13:47 schreef themole het volgende:
[..]
Zou het als ik jou was snel oplossen, de onderste site in je signature is al vatbaar daarvoor.
Verander ?id=9 maar eens in ?id='; krijg je meteen een error.
Ja een error, maar dat moeten mensen ook niet zelf gaan invullen natuurlijk, als ik naar google.nl/niks ga krijg ik ook een error.quote:Op zaterdag 21 april 2012 13:47 schreef themole het volgende:
[..]
Zou het als ik jou was snel oplossen, de onderste site in je signature is al vatbaar daarvoor.
Verander ?id=9 maar eens in ?id='; krijg je meteen een error.
Bij Google krijg je een error die door Google zelf is gegenereerd. Bij jouw sites krijg je errors die door PHP worden gemaakt. In feite help je hackers door ze informatie te geven over hoe jouw programmatuur in elkaar steekt.quote:Op zaterdag 21 april 2012 13:58 schreef JDx het volgende:
[..]
Ja een error, maar dat moeten mensen ook niet zelf gaan invullen natuurlijk, als ik naar google.nl/niks ga krijg ik ook een error.
Ja, je kunt sowieso alle data in je database uitlezen. Als hetzelfde MySQL-account ook schrijfrechten heeft, kan de database ook worden aangepast.quote:Maar kunnen ze echt schade aanrichten? Want ik heb ook sites voor bedrijven e.d. gemaakt op deze manier.
mysql_real_escape_string() zorgt ervoor dat het niet mogelijk is om uit de quotes die om je query staan te breken. Daardoor blijft alle user-input onderdeel van jouw query en kan een kwaadwillende niet zelf een nieuwe query uitvoeren.quote:Wat doet bijvoorbeeld
<?php
'SELECT * FROM `table`
WHERE `string` = "'.mysql_real_escape_string($_GET['foo']).'"
AND `number` = '.intval($_GET['bar']);
?>
dat stukje, die zorgt ervoor dat je alleen maar een woord kan invullen en geen mysql code ofzo?
Waar zeg ik dat het uitmaakt of je POST of GET gebruikt? Ik geef alleen maar een voorbeeld, in dit geval via GET, maar via POST is het natuurlijk ook niet te vertrouwen.quote:Op zaterdag 21 april 2012 13:58 schreef Light het volgende:
[..]
Of je GET of POST gebruikt maakt helemaal niets uit voor de behandeling van de invoer. Het is en blijft user input, en dat is niet te vertrouwen.
http://nl.wikipedia.org/wiki/SQL-injectiequote:Op zaterdag 21 april 2012 13:58 schreef JDx het volgende:
[..]
Ja een error, maar dat moeten mensen ook niet zelf gaan invullen natuurlijk, als ik naar google.nl/niks ga krijg ik ook een error.
Maar kunnen ze echt schade aanrichten? Want ik heb ook sites voor bedrijven e.d. gemaakt op deze manier.
Wat doet bijvoorbeeld
<?php
'SELECT * FROM `table`
WHERE `string` = "'.mysql_real_escape_string($_GET['foo']).'"
AND `number` = '.intval($_GET['bar']);
?>
dat stukje, die zorgt ervoor dat je alleen maar een woord kan invullen en geen mysql code ofzo?
Dat vraagt JDx.quote:Op zaterdag 21 april 2012 14:04 schreef themole het volgende:
[..]
Waar zeg ik dat het uitmaakt of je POST of GET gebruikt?
Je reageert op een vraag of er post gebruikt moet worden met een opmerking 'zo zou ik het doen'. En dan reageer ik daar weer op.quote:Op zaterdag 21 april 2012 14:04 schreef themole het volgende:
[..]
Waar zeg ik dat het uitmaakt of je POST of GET gebruikt? Ik geef alleen maar een voorbeeld, in dit geval via GET, maar via POST is het natuurlijk ook niet te vertrouwen.
http://php.net/manual/en/pdo.prepared-statements.phpquote:Op zaterdag 21 april 2012 14:15 schreef JDx het volgende:
PDO?
Maar laat eens zien hoe je misbruik maakt van dat dan? Dat begrijp ik niet helemaal als ik invul:
44' OR 'a' = 'a'
dan gebeurd er niets.
Ik vind intval($_GET['id']) ook goed, dan weet je zeker dat je een getal hebt en niet een string als '9 or 1=1'.quote:Op zaterdag 21 april 2012 14:14 schreef TwenteFC het volgende:
http://kledingmerken.jdx.nl/single.php?id=44
Je doet ergens $_GET['id'] richting de database, begin dat eerst maar eens te veranderen naar mysql_real_escape_string($_GET['id'])
True. Maar als je een hele applicatie moet omschrijven, is dat best veel werk.quote:Beste is om PDO te gebruiken.
http://kledingmerken.jdx.nl/single.php?id=9%20or%201%3D1quote:Op zaterdag 21 april 2012 14:15 schreef JDx het volgende:
PDO?
Maar laat eens zien hoe je misbruik maakt van dat dan? Dat begrijp ik niet helemaal als ik invul:
44' OR 'a' = 'a'
dan gebeurd er niets.
Als je websites hebt voor bedrijven kan je dit soort dingen niet maken. Dan maar omschrijven. Maar dit is gewoon linkquote:Op zaterdag 21 april 2012 14:17 schreef Light het volgende:
[..]
Ik vind intval($_GET['id']) ook goed, dan weet je zeker dat je een getal hebt en niet een string als '9 or 1=1'.
[..]
True. Maar als je een hele applicatie moet omschrijven, is dat best veel werk.
Verrekquote:Op zaterdag 21 april 2012 14:18 schreef Light het volgende:
[..]
http://kledingmerken.jdx.nl/single.php?id=9%20or%201%3D1
Ik zou liever voor de snellere oplossing kiezen, denk ik. Dat omschrijven kan altijd nog, eerst moet de boel veilig worden.quote:Op zaterdag 21 april 2012 14:19 schreef Civilian het volgende:
[..]
Als je websites hebt voor bedrijven kan je dit soort dingen niet maken. Dan maar omschrijven. Maar dit is gewoon link
Het probleem is alleen dat er misschien al een uittreksel van je hele database op internet rondzwerft. Je wachtwoorden zijn wel salted encrypted enzo? Die zou ik ook maar even wijzigen als ik jou was.quote:Op zaterdag 21 april 2012 14:20 schreef JDx het volgende:
[..]
Verrek
Mooi dat ik dit nu ontdek en niet dat mn baas opeens met een boze klant komt
Inderdaad, persoonlijk had ik hem op zwart gegooid.. alles nagelopen, en dan weer online gegooid.quote:Op zaterdag 21 april 2012 14:21 schreef Light het volgende:
[..]
Ik zou liever voor de snellere oplossing kiezen, denk ik. Dat omschrijven kan altijd nog, eerst moet de boel veilig worden.
Wachtwoorden staan er verder niet in volgens mij.quote:Op zaterdag 21 april 2012 14:22 schreef Tijn het volgende:
[..]
Het probleem is alleen dat er misschien al een uittreksel van je hele database op internet rondzwerft. Je wachtwoorden zijn wel salted encrypted enzo? Die zou ik ook maar even wijzigen als ik jou was.
Wees blij dat er nog geen grapjas is geweest die een DELETE statement heeft uitgevoerdquote:Op zaterdag 21 april 2012 14:20 schreef JDx het volgende:
[..]
Verrek
Mooi dat ik dit nu ontdek en niet dat mn baas opeens met een boze klant komt
Geen enkel wachtwoord in geen enkele tabel van je CMS?quote:Op zaterdag 21 april 2012 14:23 schreef JDx het volgende:
[..]
Wachtwoorden staan er verder niet in volgens mij.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |