#1
| |||
| |||
Sicherheit in BB'sBeitrag gelöscht. Geändert von printf (15.02.2008 um 14:01 Uhr). |
#2
| ||||
| ||||
Das Problem beschränkt sich aber nicht nur auf Bulletin Boards sondern gilt generell für Webapplikationen auf PHP Basis. Wo die Gründe liegen ist eine gute Frage. Das die Programmierer keine Ahnung von Sicherheit haben würde ich weitgehend ausschliessen da die Programmierer der bekannteren Boards doch recht fundierte PHP Kentnisse haben. Zeitdruck fällt ebenfalls weg, da wie du schon sagtest ein intval() oder is_numeric() reicht um den Typ eines URL Parameters sicherzustellen. Ich denke das Problem ist schlicht und ergreifend Schlamperei. Das man mal das intval() oder is_numeric() vergisst oder das es nach einer Copy & Paste Session unbemerkt verschwunden ist kann passieren und ist mir auch schonmal passiert. Das in einer grösseren Software wie dem vB 2-3 Sicherheitslücken auftauchen ist dann kein Wunder mehr. Die Gründe für XSS vulnerabilities fussen wohl auch auf Schlamperei. Wobei es bei XSS vulnerabilities auch schnell passiert das mal ein regulärer Ausdrück in den Sicherheitsroutinen versagt oder sich auf ähnliche Weisen Fehler einschleichen. Eine Abhilfe könnte ein globales Sicherheitskonzept sein bei dem beispielsweise GPC Variablen global entschärft und überprüft werden, so das es nicht von intval() Aufrufen in irgendeiner Verzweigung des Scripts abhängt ob Daten sicher sind oder nicht .. |
#3
| |||
| |||
Ein solches globales Abfangen ist ja erst in den neueren PHP-Versionen mittels den neuen Superglobals möglich. Vorher war es unmöglich bzw. zu sehr aufwändig. Doch man sieht das immer öfter. vBulletin macht das so, wenn ich das richtig verstanden habe, phpBB 2.2 wird es so machen und die anderen machen es auch oder werden es in der nächsten Zeit machen. |
#4
| ||||
| ||||
was genau sind den SQL-Injactions? *ma ganz dumm frag* __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#5
| ||||
| ||||
ja Sascha, beim vBulletin3 ist es so gelöst. Trotzdem muss man aufpassen wenn man Hacks schreibt. Man blickt nicht direkt durch und öffnet deshalb bestimmt auch mal ein Scheunentor |
#6
| ||||
| ||||
Zitat:
Kleines Beispiel eines verwundbaren Login Scripts: PHP-Code: Code: Administrator'# Code: SELECT * FROM users WHERE username = 'Administrator'#' AND password = '' Das war jetzt nur ein einfaches Beispiel, die Möglichkeiten bei SQL-Injections sind noch weitaus vielfältiger. |
#7
| ||||
| ||||
Oha das ne richtig kack sicherheitslücke!! ich habs grad mal lokal getestet uhuhuh.. was wär jetzt speziell bei dem beispiel hilfreich? addslashes()? mfg __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#8
| |||
| |||
Beitrag gelöscht. Geändert von printf (15.02.2008 um 14:01 Uhr). |
#9
| ||||
| ||||
Ja, addslashes() auf alle Strings die in SQL-Abfragen eingesetzt werden sollte das Probleme beheben. |
#10
| ||||
| ||||
Oder du globalisierst das ganze, indem du die superglobals bearbeitest. __________________ Frederic Schneider WoltLab Team / WoltLab Wiki / GamePorts / Frederic Schneider / neuer-patriotismus.de |
#11
| ||||
| ||||
Meiner Meinung nach ist mysql_real_escape_string bzw. mysql_escape_string geeigneter. @fredi: Und was sollte das bringen? Behebt ja nicht die Lücke. Nebenbei: Statt intval kann man auch ctype_digit verwenden. (Ist meist auch sinnvoller) |
#12
| ||||
| ||||
Zitat:
__________________ Frederic Schneider WoltLab Team / WoltLab Wiki / GamePorts / Frederic Schneider / neuer-patriotismus.de |
#13
| ||||
| ||||
wenn magic_quotes_gpc off sind werden $_GET $_POST und $_COOKIE mit addslashes behandelt.. die sicherheitslücke liegt also bei $_SESSION bei mir speziell! und einfach anwenden auf alle wenn magic_quotes_gpc auf on ist dann kommt nur wir war ruas... mfg __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#14
| ||||
| ||||
Was viele vergessen, die $_SERVER Variablen sollte man auch behandeln. Denn diese kann man ebf. manipulieren. |
#15
| |||
| |||
Ich hoffe es ist ok, wenn ich nochmal was dazu frage... Ich verwende für Felder, die Int sind meist (int) statt inval. Bsp. $topicid = (int)$_REQUEST['topicid']; Behebt das das Problem ebenfalls oder bringt nur intval den gewünschten Effekt? __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#16
| ||||
| ||||
Das hat den gleichen Effekt wie void intval(). Allerdings solltest du beachten, dass dies nicht die Eingabe von -1 verhindert. Wenn du nur Dezimalzeichen erlauben willst, empfehle ich die Benutzung von void ctype_digit() (Seit PHP 4.2.0 bzw. 4.3.0). Die von dir angesprochene Typ-Umwandlung (int) (http://de2.php.net/manual/de/languag...e-juggling.php) wurde lediglich von C übernommen. |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Sicherheit von PHP-Skripten | hmueller | Programmierung und Datenbanken | 3 | 26.12.2004 13:27 |
IE Sicherheit | IChao | Projektvorstellung und Bewertung | 5 | 24.09.2004 16:47 |
Forum: Protecus Securityboard -> alles über Computer Sicherheit | Luki | Projektvorstellung und Bewertung | 14 | 22.04.2004 17:28 |
Meine Nachricht zur Sicherheit von phpBB in deren Forum gelöscht | Saubloed | Forensoftware | 3 | 29.11.2003 20:57 |
Sicherheit von Passwörtern / Widerekennen eines Users | DaddyCool | Programmierung und Datenbanken | 18 | 28.10.2003 16:10 |