c++ probs mit zeigern! - Seite 3

Seite 3 von 3 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_probs_mit_zeigern_50238/page_3 - zur Vollversion wechseln!


that schrieb am 06.10.2002 um 10:00

statt sprintf wäre z.B. snprintf besser.


Neo-=IuE=- schrieb am 06.10.2002 um 11:48

gets hat mit längern zeilen als der buffer kein problem, der schneidets halt ab, nur bei scanf hast a problem damit ;)


Ringding schrieb am 06.10.2002 um 12:31

bei gets kann man wirklich nicht angeben, wie lang der puffer ist, aber drum nimmt man ja auch fgets.

du wirst es nicht glauben, auch mit printf kann man recht leicht sicherheitslücken produzieren (abgesehen vom puffer überschreiben, das schon angesprochen wurde). nämlich dann, wenn du einen vom user eingegebenen string als erstes argument (format string) verwendest. da gibt's nämlich böse dinge, mit denen man integers im speicher überschreiben kann.

es ist zwar eine mühsame sache, so einen exploit aufzubauen, aber es gibt auch hierfür genug beispiele.


Vir@s schrieb am 06.10.2002 um 15:07

Du kannst für so ziemlich alles exploits aufbauen, überall gibt es sicherheitslücken, nur printf wird weit verwendet, auch in der UNIX Welt, aber wahrscheinlich irren sich die alle, und nur ihr habt recht.....


Ringding schrieb am 06.10.2002 um 15:09

Gegen die Verwendung von printf ist nichts zu sagen, solang der erste Parameter (format string) hardcoded ist.


that schrieb am 06.10.2002 um 16:38

Zitat von Ringding
Gegen die Verwendung von printf ist nichts zu sagen, solang der erste Parameter (format string) hardcoded ist.

...UND der Ausgabepuffer garantiert lang genug ist für den längstmöglichen formatierten String.

EDIT: natürlich gilt das für sprintf...


Ringding schrieb am 06.10.2002 um 17:24

jo, das ist eh klar. hab ich weiter oben eh schon geschrieben ;)


Vir@s schrieb am 07.10.2002 um 09:58

Des ist aber dann sache vom Programmierer und nicht vom C würd ich mal sagen.

Und Format strings nicht hardcoded machen ist sowieso oberkill, außer du baust eine saubere Überprüfung ein.


that schrieb am 07.10.2002 um 22:37

Zitat von Vir@s
Und Format strings nicht hardcoded machen ist sowieso oberkill, außer du baust eine saubere Überprüfung ein.

Wir hattens in den Win32 Resources, wegen der Übersetzung. Blöd ist nur, wenn der Übersetzer irrtümlich ein %s entfernt oder z.B. %d und %s vertauscht, weil die Reihenfolge der Einsetzvariablen in der Fremdsprache anders sein soll. :)


Ringding schrieb am 07.10.2002 um 23:04

Programmuebersetzungen sind soundso ein Graus. Fuer die Reihenfolgenvertauschung gibt's FormatMessage.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026