Dear visitor, welcome to WoltLab Community Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
TimWolla
WoltLab Developer
Rating: ![]()
by TimWolla, Tuesday, July 13th 2010, 9:56pm
|
|
MySQL queries |
1 2 3 4 5 6 7 8 |
CREATE TABLE users ( userID int(10) unsigned NOT NULL AUTO_INCREMENT, username varchar(255) NOT NULL, password varchar(255) NOT NULL, admin tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY (userID), UNIQUE KEY username (username) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
|
|
PHP Source code |
1 |
$sql = "INSERT INTO users (username, password, admin) VALUES ('".$_POST['username']."', '".$_POST['password']."', 0)";
|
|
|
Source code |
1 2 3 4 |
Array ( [username] => TimWolla [password] => MeinSuperPasswort ) |
|
|
MySQL queries |
1 |
INSERT INTO users (username, password, admin) VALUES ('TimWolla', 'MeinSuperPasswort', 0) |
|
|
Source code |
1 2 3 4 |
Array (
[username] => NeuerAdmin', 'MeinSuperPasswort', 1), ('TimWolla
[password] => MeinSuperPasswort
)
|
|
|
MySQL queries |
1 |
INSERT INTO users (username, password, admin) VALUES ('NeuerAdmin', 'MeinSuperPasswort', 1), ('TimWolla', 'MeinSuperPasswort', 0) |
|
|
PHP Source code |
1 |
$sql = "INSERT INTO users (username, password, admin) VALUES ('".escapeString($_POST['username'])."', '".sha1($_POST['password'])."', 0)";
|
|
|
MySQL queries |
1 |
INSERT INTO users (username, password, admin) VALUES ('NeuerAdmin\', \'MeinSuperPasswort\', 1), (\'TimWolla', '5400cb1aa89d4752abbde24613cde8a5d8c86173', 0) |
This article has been read 7,298 times.
Categories: Community Framework, Plugins, Programmierung, Sicherheit
by Obbi89 (Friday, February 22nd 2013, 9:32am)
Erstmal toller Eintrag (wenn auch schon was aelter)
Jedoch sollte man vllt im Hinblick auf WCF2 ein kleinen Hinweis am Anfang editieren, der explizit sagt, dass dies fuer das WCF1 gilt.
Denn meiner Meinung sollte man doch nun versuchen vorallem auf Prepared Statements zurueckzugreifen.
Aus dem Sicherheitsaspekt gesehn ist das der weitaus bessere Ansatz als escape funktionen, die immer wieder Sonderfaelle nicht beachten.
Und die meisten PHP-Entwickler die nicht gerade erfahren sind und mysql_query verwenden schaffen es meist Mist zu bauen. 
Ich nehme mal an dass im WCF2 die Policy so sein wird dass man prepare fuer userdaten verwenden soll?
by Felix (Keyway) (Thursday, April 26th 2012, 6:35pm)
Hallo Tim,
machst du irgendwann nochmal so einen fantatischen Blog-Artikel?
MFG
by AndreasD. (Friday, July 30th 2010, 11:12pm)
ich denke d0nut wollte das schon sagen, aber der hinweis sollte noch ganz fett hinein: wenn escapeString (oder die mySQL funktionen von php dafür) verwendet werden, unbedingt den string auch in anführungszeichen setzen. escapeString sichert im prinzip nur soweit ab, dass der zurückgegebene string nicht die umgebenden anführungszeichen "stören" kann - wenn die aber fehlen, kann man damit wild herumspielen. aus "foo, bar" wird auch bei escapeString nichts gegen das komma oder das leerzeichen unternommen.
wichtiger als den hinweis, dass man die beiden funktionen verwenden soll, fände ich noch, wenn man auch erwähnt dass man ein klares konzept braucht _wo_ man sie einbaut. direkt im sql string, bereits innerhalb von read Methoden, usw. - alles hat vor/nachteile - jedem das seine, aber man sollte wissen wo man es macht
damit man nicht einmal darauf vergisst.
mfg,
andreas
by d0nut (Saturday, July 17th 2010, 10:15am)
Nochmal der Hinweis: escapeString schützt nicht bei Zahlen.
Beispiel bei dem eine SQL Injection möglich ist:
$sql = "SELECT * FROM category WHERE id = ".escapeString($id);
Mehr auch in einer Präsentation von mir zu SQL Injections: http://www.easy-coding.de/praesentation-…king-t6638.html
by 8inLine (Friday, July 16th 2010, 9:44pm)
Uff, bei sowas krieg ich immer etwas Kopfschmerzen, deshalb danke das du es so gut dargestellt hast. Das machte die Sache etwas einfacher.
----------------------------
Wer sich über die Wirklichkeit nicht hinauswagt, der wird nie die Wahrheit erobern. — Schiller
Mein Blog: http://www.usbmemorysticks.net/ironkey-flash-drives
by kurtextrem (Wednesday, July 14th 2010, 11:57am)
Verdammt, du hast mein PW Public gemacht!
Ne, spaß, toller Blog Eintrag, gefällt mir gut 
Tuesday, July 13th 2010, 9:56pm
by Obbi89 (Feb 22nd 2013, 9:32am)
by Felix (Keyway) (Apr 26th 2012, 6:35pm)
by TimWolla (Jul 31st 2010, 6:15pm)
by AndreasD. (Jul 30th 2010, 11:12pm)
by Marcel Werk May 4th 2012, 12:00pm
by Alexander Ebert Feb 18th 2012, 3:44pm
by Harald Szekely Jul 19th 2011, 5:56pm
Forum Software: Burning Board® 3.1.7, developed by WoltLab® GmbH