Heizer: PHP-Nuke: Sicherheitsleck

Beitrag lesen

Hi

Das Problem bei allen Programmen: Mißtraue Usereingaben!!!

Der böse User wird sich z.B. nicht deshalb bei der Länge des Paßwortes zurückhalten, weil in der Anleitung steht "maximal 25 Zeichen". Er kann durchaus 3000 Zeichen ausprobieren, und wenn das Programm nicht die überzähligen Zeichen unbeachtet einfach wegwirft, sondern versucht, die irgendwo zu speichern, wo kein Platz vorgesehen war, dann kommt es mit einiger Sicherheit zum "Buffer Overflow": Der für die Zeichenkette reservierte Speicherplatz wurde überschritten, aber entsetzlicherweise wurde vom Programm über das vorgesehene Ende hinaus blind weiter in den Speicher geschrieben - Daten und möglicherweise Programmcode wurden zerstört.

Da bin ich jetzt unsicher geworden. Bei Eingabeformularen verwende ich natürlich immer das maxlength-Attribut, aber daß das natürlich nur als Empfehlung an den Besucher zu verstehen ist, ist mir auch klar. Wenn ich die eingabe dann aber in MySQL speichere, haben die Felder eben auch diese Länge. Der Rest sollte dann doch von MySQL weggeworfen werden (so habe ich das jedenfalls mal in einem Handbuch gelesen). Ist das korrekt, oder bedeutet es zusätzliche sicherheit, wenn ich den String vorher schon auf die entsprechende Länge kürze?

Bei welchen arten des Speicherns von daten kann es zu einem Buffer Overflow kommen? Man hört ja immer wieder davon, habe aber eigentlich noch nie daran gedacht, daß dies bei meiner art, PHP zu benutzen, auftreten kann.

Vielen dank

Heizer