Thread Probleme mit strcat (20 answers)
Opened by renee at 2005-04-28 14:28

Dubu
 2005-04-29 11:27
#11120 #11120
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=renee,29.04.2005, 09:03]Ich habe jetzt einfach am Anfang "genügend Speicher" alloziert.[/quote]
"genügend Speicher" ist so eine Sache, und sicherlich Quell der meisten Sicherheitslücken in C-Programmen: Wenn der Benutzer dann - aus Versehen oder Absicht - doch mal mehr Daten eingibt, als du vorgesehen hast, kommt es schnell zum "Buffer Overflow", der es dem Benutzer ermöglicht, eigenen Binärcode auszuführen.

So etwas kümmert einen meist nicht, so lange das Programm vom Benutzer lokal und ohne erweiterte Rechte ausgeführt wird (der Benutzer bekommt durch Fehleingaben nicht mehr Rechte, als er schon hat), aber wenn man Serversoftware schreibt, oder das Programm irgendwann Teil einer Web-Applikation wird, hat man eine schöne Hintertür für einen Angreifer eingebaut.

Also, wenn man in C/C++ mit den eingebauten Feldern hantiert, sollte man immer die Grenzen prüfen. Das bedeutet explizit bei Arrays-of-char, dass man z.B. strncat() statt strcat() benutzt und strncpy() statt strcpy. So hat man die Kontrolle, wieviele Zeichen tatsächlich maximal angehängt oder kopiert werden, und dass es nie mehr sind, als der Zielstring verträgt.

View full thread Probleme mit strcat