Allereerst, ik vond dat deze ook paste in Beveiliging en Virussen, dus als een modje denkt dattie daar beter past moettie maar ff gemoved...
Ik doe een paar jaar PHP scriptjes in elkaar flanzen, inmiddels heb ik een CMS waarbij ik bij een query standaard via deze methode te werk ga:
$db->preparegpc is deze functie:
Volgens mij waterdicht (Iig, nu ik vandeweek ff snel addslashes voor mysql_real_escape_string vervangen heb in mijn functie, hierom
)
Iemand die ik ken heeft het hele probleem op zijn - voor mij nog onbekende - manier getackled.
Hier bijvoorbeeld zijn inlogcode:
Zoals je ziet doet hij niet aan het escapen van variabelen, hij checkt gewoon met ereg of ze wel binnen een bepaalde range liggen. Zo kan je ook nooit binnenkomen, aldus hem
Nu ben ik inderdaad van mening dat het vrij lastig is om nog quotes te escapen en dus een succesvolle MySQL-injection uit te voeren op deze manier, maar ik kan zo niet 1, 2, 3 bepalen of de manier ook stand zou kunnen houden tegen bijvoorbeeld de manier die ik eerder al aanhaalde, deze manier.
Hij denkt dat zijn manier net zo goed is als de mijne, ik denk dat ie best nice is maar er waarschijnlijk wel een achterdeurtje zal zitten die je niet kan overzien. Volgens mij is het beter om mijn manier te implementeren.
Wat denken jullie hiervan, en wat gebruiken jullie zelf?
Poll: Wat is de manier?
• De manier van eXistenZ
• De manier van orange.x
• Beide manieren zijn ok.
• Beide manieren zijn slecht.
Tussenstand:

Ook een poll maken? Klik hier
N.B. Dit is dezelfde poll als die op pagina 3, heb 'm hier ook ff toegevoegd voor de volledigheid.
Ik doe een paar jaar PHP scriptjes in elkaar flanzen, inmiddels heb ik een CMS waarbij ik bij een query standaard via deze methode te werk ga:
PHP:
1
2
3
4
5
6
| $db->query("INSERT INTO blog_comments (name, postid, message, remote_addr) VALUES ('{$db->preparegpc($_POST['name'])}', '{$db->preparegpc($_POST['postid'])}', '{$db->preparegpc($_POST['message'])}', '{$_SERVER['REMOTE_ADDR']}')"); |
$db->preparegpc is deze functie:
PHP:
1
2
3
4
5
6
7
8
9
| function preparegpc($string) { if (!empty($string)) { // foutje gefixt. if ($this->dblink == null) $this->connect(); if (get_magic_quotes_gpc()) stripslashes($string); return mysql_real_escape_string($string); } } |
Volgens mij waterdicht (Iig, nu ik vandeweek ff snel addslashes voor mysql_real_escape_string vervangen heb in mijn functie, hierom
Iemand die ik ken heeft het hele probleem op zijn - voor mij nog onbekende - manier getackled.
Hier bijvoorbeeld zijn inlogcode:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| if ( $action['action'] == "adminlogtin" ) { $username = $_POST['username']; $password = $_POST['password']; if ( ereg("([0-9a-zA-Z])", $username ) AND ereg("([0-9a-zA-Z])", $password ) ) { $query = mysql_query("SELECT member.username, member.password FROM member WHERE username = '$username'"); $result = mysql_fetch_row($query); } if ( ( $result[0] == $username ) AND ( $result[1] == $password ) AND ( $username ) AND ( $password ) ) { $_SESSION['ingelogd'] = true; } else { $_SESSION['ingelogd'] = false; $login = 1; } } else if ( $action['action'] == "loguit" ) { $_SESSION['ingelogd'] = false; } |
Zoals je ziet doet hij niet aan het escapen van variabelen, hij checkt gewoon met ereg of ze wel binnen een bepaalde range liggen. Zo kan je ook nooit binnenkomen, aldus hem
Nu ben ik inderdaad van mening dat het vrij lastig is om nog quotes te escapen en dus een succesvolle MySQL-injection uit te voeren op deze manier, maar ik kan zo niet 1, 2, 3 bepalen of de manier ook stand zou kunnen houden tegen bijvoorbeeld de manier die ik eerder al aanhaalde, deze manier.
Hij denkt dat zijn manier net zo goed is als de mijne, ik denk dat ie best nice is maar er waarschijnlijk wel een achterdeurtje zal zitten die je niet kan overzien. Volgens mij is het beter om mijn manier te implementeren.
Wat denken jullie hiervan, en wat gebruiken jullie zelf?
Poll: Wat is de manier?
• De manier van eXistenZ
• De manier van orange.x
• Beide manieren zijn ok.
• Beide manieren zijn slecht.
Tussenstand:
Ook een poll maken? Klik hier
N.B. Dit is dezelfde poll als die op pagina 3, heb 'm hier ook ff toegevoegd voor de volledigheid.
[ Voor 13% gewijzigd door _eXistenZ_ op 13-06-2008 10:01 . Reden: foutje in functie gefixt. ]
There is no replacement for displacement!