Abo
  1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › C-Programmierung: Schutz…

Ich dachte C waere sicher..?

  1. Thema

Neues Thema Ansicht wechseln


  1. Ich dachte C waere sicher..?

    Autor: carsti 28.12.14 - 13:19

    Schon komisch. Ich habe bis auf Spezialfaelle C/C++ seit Jahren hinter mir gelassen. Vor allem auch wegen der ranzigen Toolchains.
    Oft kann man es natuerlich nicht vermeiden. Aber ich gehoere nicht zu denen die behaupteten, dass die vielen Sicherheitsluecken nur was mit den miesen Programmierern zu tun haben. Einmal mehr beweist es sich, dass die Sprache und Toolchain so sein sollten, dass selbst bei schlechten Programmieren ausser logischen Fehlern alles abgefangen wird.
    Mit logischen Fehlern meine ich vermurkste Login-Checks (man kann sich z.B. ohne Passwort oder falschem Passwort einloggen) oder offene Ports ueber die Daten abgerufen werden koennen, usw.
    Sowas kann eine Toolchain natuerlich nie abfangen. Woher soll sie wissen ob es nicht gewollt ist. Oft passieren solche Fehler weil man fuer Testzwecke was mit Absicht auskommentiert hat und dann in Produktion nicht mehr aktiviert. Auch sowas koennte man verhindern - aber das ist ein anderes Thema.

  2. Re: Ich dachte C waere sicher..?

    Autor: Wirtschaftsmacht 28.12.14 - 14:22

    Wer 'schlecht' programmiert sollte erst gar kein Programmierer sein! Ist echt zum kotzen, was da teilweise von den Universitäten in die Jobs fällt und Null,Nix Logikverstand aufweist, einfach weil IT grade hip ist! Ich hab schon zig Personen interviewt und 9 von 10 sind 'ausschuss'! Man kann nicht erwarten, dass eine IDE einem die Arbeit abnimmt, da geht es einzig um Komfort-Funktionen die Sinn machen. Logik, Struktur und Ablauf muss einem Fähigen Geist entspringen und sowas ist teilweise genetische Veranlagung.

  3. Re: Ich dachte C waere sicher..?

    Autor: non_sense 28.12.14 - 15:06

    Wirtschaftsmacht schrieb:
    --------------------------------------------------------------------------------
    > Wer 'schlecht' programmiert sollte erst gar kein Programmierer sein! Ist
    > echt zum kotzen, was da teilweise von den Universitäten in die Jobs fällt
    > und Null,Nix Logikverstand aufweist, einfach weil IT grade hip ist! Ich hab
    > schon zig Personen interviewt und 9 von 10 sind 'ausschuss'! Man kann nicht
    > erwarten, dass eine IDE einem die Arbeit abnimmt, da geht es einzig um
    > Komfort-Funktionen die Sinn machen. Logik, Struktur und Ablauf muss einem
    > Fähigen Geist entspringen und sowas ist teilweise genetische Veranlagung.

    Ja, da muss ich recht geben.
    Ich hatte das Vergnügen in diversen Firmen reinzuschauen, und jedes Mal entdecke ich da Code, wo ich mich frage, welcher Geisteskranke sich diesen Müll ausgedacht hat?
    In einer Software habe ich sogar ein Masterpasswort in Klartext im Code entdecken können. Der Klassiker ist auch: "Keine Kommunikation". Da sitzen drei Leute am selben Thema dran und man findet drei unterschiedliche Lösungen im Code ... Sehr witzig, wenn man da was erweitern muss ... Auch Internationalisierung scheint bei vielen Firmen ein mächtiges Problem zu sein, oder trotz Objektorientierung auf Objekte scheißen und alles in Methoden lösen, und per if-then-else entscheiden, welche Methode aufgerufen werden soll.

  4. Re: Ich dachte C waere sicher..?

    Autor: schap23 28.12.14 - 17:23

    Solange Erfahrung in Jahren gemessen wird, wird sich nichts daran ändern. Jemand, der an ein halbes Jahr lang an einem Problem bastelt, weil er schon zu kompliziert angefangen hat und dann weitergebastelt hat, wird halt den nächsten Job kriegen und nicht der, der eine elegante Lösung innerhalb von drei Tagen gefunden hat. Ersterer hat nämlich ein halbes Jahr mehr "Erfahrung" in Java, C oder sonst so einem Kram.

  5. Re: Ich dachte C waere sicher..?

    Autor: Eiertoller 28.12.14 - 18:49

    schap23 schrieb:
    --------------------------------------------------------------------------------
    > Solange Erfahrung in Jahren gemessen wird, wird sich nichts daran ändern.

    Nach meiner Erfahrung gibt es kein einfaches/klares Muster wonach jemand eingestellt und ein anderer abgewiesen wird. Manchmal ist es einfach die Chemie im Bewerbungsgespräch, manchmal die persönlichen Vorlieben des Personalers der die Kandidaten für ein Gespräch auswählt. Mein Favorit für ein Muster ist das: derjenige, der sich im Gespräch besser verkauft, bekommt den Job, egal ob er fachlich eine Niete ist oder nicht. Und ich habe den Eindruck, fachliche Nieten haben eine Stärke: sich gut zu verkaufen :-P

  6. Re: Ich dachte C waere sicher..?

    Autor: Cerdo 28.12.14 - 19:30

    Wirtschaftsmacht schrieb:
    --------------------------------------------------------------------------------
    > Wer 'schlecht' programmiert sollte erst gar kein Programmierer sein! Ist
    > echt zum kotzen, was da teilweise von den Universitäten in die Jobs fällt
    Das sagst du so einfach. Man muss schon echt viel können, um ein guter Programmierer zu sein.

    Ich hab schon Programme gesehen, die vom Aufbau her eine absolute Katastrophe, aber in sich stimmig und sicher waren. Andere Programme sind gut strukturiert, aber dann findet man so etwas wie printf(variable);

    Ein guter Informatiker muss zudem nicht zwingend ein guter Programmierer sein. Nur leider versteht das keiner.

  7. Re: Ich dachte C waere sicher..?

    Autor: George99 28.12.14 - 22:16

    Cerdo schrieb:
    --------------------------------------------------------------------------------
    > Wirtschaftsmacht schrieb:
    > ---------------------------------------------------------------------------

    > gut strukturiert, aber dann findet man so etwas wie printf(variable);

    Was ja durchaus sinnvoll sein kann, wenn die variable vom Typ char * ist. Ansonsten hätte der Programmierer auch eine entsp. Fehlermeldung bekommen.

  8. Re: Ich dachte C waere sicher..?

    Autor: Cerdo 29.12.14 - 00:25

    George99 schrieb:
    --------------------------------------------------------------------------------
    > > gut strukturiert, aber dann findet man so etwas wie printf(variable);
    >
    > Was ja durchaus sinnvoll sein kann, wenn die variable vom Typ char * ist.

    Nicht bei sicherheitskritischen Anwendungen. Wenn in der Variable ein Formatstring steht (%s, %x) kann man sich damit fast den kompletten Stack anzeigen lassen. Darum sollte man IMMER printf("%s", variable); schreiben.
    Auch wenn man in den meisten Fällen damit nicht viel falsch macht, ist alles andere doch eine blöde Angewohnheit, die man dann eben auch macht, wenn es wichtig wäre.

  9. Re: Ich dachte C waere sicher..?

    Autor: George99 29.12.14 - 11:31

    Du hast natürlich recht, dass das auch in die Hose gehen kann. Ich muss zugeben, dass ich printf() bisher auch immer nur klassisch mit einem String benutzt habe. zumal es ja auch noch puts() gibt, wenn man damit leben kann, dass automatisch ein \n mit ausgegeben wird.

  10. Re: Ich dachte C waere sicher..?

    Autor: Cerdo 29.12.14 - 14:13

    Um reine Strings auszugeben ist puts() natürlich super. Da wird der String auch (glaub ich) nicht als Formatstring interpretiert.
    Ich frag mich sowieso, warum die gcc nicht meckert, wenn man printf() "falsch", also unsicher verwendet. Zumindest ein Hinweis wäre schön. Bei gets() kommt ja auch einer.

  11. Re: Ich dachte C waere sicher..?

    Autor: BRDiger 29.12.14 - 14:27

    Cerdo schrieb:
    --------------------------------------------------------------------------------
    > Um reine Strings auszugeben ist puts() natürlich super. Da wird der String
    > auch (glaub ich) nicht als Formatstring interpretiert.
    > Ich frag mich sowieso, warum die gcc nicht meckert, wenn man printf()
    > "falsch", also unsicher verwendet. Zumindest ein Hinweis wäre schön. Bei
    > gets() kommt ja auch einer.

    https://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/Warning-Options.html

    Suche dort nach "-Wformat" - suchtest du das?

    Funktioniert bei mir zwar nicht aber naja^^

    Bei mir wird partout keine Warnung ausgegeben trotz -Wformat.

    Habe kompiliert mit: gcc -g -Werror -Wall -Wformat -o test test.c

  12. Re: Ich dachte C waere sicher..?

    Autor: Cerdo 29.12.14 - 14:52

    Ich kompiliere prinzipiell mit -Wall, also ist -Wformat da schon drin. Das überprüft leider nur auf Fehler wie printf("%s %s", v);
    Dann schreit er nach dem zweiten Argument.

  13. Re: Ich dachte C waere sicher..?

    Autor: George99 29.12.14 - 15:37

    Wenn wir schon bei printf() sind: Lustig ist z.B. die Frage, wie ich eine Variable vom Typ clock_t ausgebe. Klar kann ich die Variable umcasten z.B. zu double oder zu long long, aber schöner wäre schon eine direkte Ausgabe.
    Für meine kleinen Home-Projekte nehme ich einfach "%l", was von Windows 32 bit (4 Bytes long) bis Linux 64 bit (8Bytes long) funktioniert, aber letztendlich ist das natürlich nicht sauber so.

  14. Re: Ich dachte C waere sicher..?

    Autor: Cerdo 29.12.14 - 15:58

    In C99 kannst du
    > printf("%ju", (uintmax_t) x);
    verwenden. Damit castest du automatisch zum längsten verfügbaren Ganzzahl-Wert auf der Maschine.

    Guckst du hier:
    > https://www.securecoding.cert.org/confluence/display/cplusplus/INT15-CPP.+Use+intmax_t+or+uintmax_t+for+formatted+IO+on+programmer-defined+integer+types

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Eurowings Aviation GmbH, Köln
  2. Wirecard Acceptance Technologies GmbH, Aschheim bei München
  3. SICK AG, Waldkirch bei Freiburg im Breisgau
  4. Merz Pharma GmbH & Co. KGaA, Frankfurt am Main

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. 127,99€ (Bestpreis!)
  2. 274,00€
  3. täglich neue Deals bei Alternate.de


Haben wir etwas übersehen?

E-Mail an news@golem.de


Google Maps in Berlin: Wenn aus Aussetzfahrten eine neue U-Bahn-Linie wird
Google Maps in Berlin
Wenn aus Aussetzfahrten eine neue U-Bahn-Linie wird

Kartendienste sind für Touristen wie auch Ortskundige längst eine willkommene Hilfe. Doch manchmal gibt es größere Fehler. In Berlin werden beispielsweise einige Kleinprofil-Linien falsch gerendert. Dabei werden betriebliche Besonderheiten dargestellt.
Von Andreas Sebayang

  1. Kartendienst Qwant startet Tracking-freie Alternative zu Google Maps
  2. Nahverkehr Google verbessert Öffi-Navigation in Maps
  3. Google Maps-Nutzer können öffentliche Veranstaltungen erstellen

FPM-Sicherheitslücke: Daten exfiltrieren mit Facebooks HHVM
FPM-Sicherheitslücke
Daten exfiltrieren mit Facebooks HHVM

Server für den sogenannten FastCGI Process Manager (FPM) können, wenn sie übers Internet erreichbar sind, unbefugten Zugriff auf Dateien eines Systems geben. Das betrifft vor allem HHVM von Facebook, bei PHP sind die Risiken geringer.
Eine Exklusivmeldung von Hanno Böck

  1. HHVM Facebooks PHP-Alternative erscheint ohne PHP

Radeon RX 5700 (XT) im Test: AMDs günstige Navi-Karten sind auch super
Radeon RX 5700 (XT) im Test
AMDs günstige Navi-Karten sind auch super

Die Radeon RX 5700 (XT) liefern nach einer Preissenkung vor dem Launch eine gute Leistung ab: Wer auf Hardware-Raytracing verzichten kann, erhält zwei empfehlenswerte Navi-Grafikkarten. Bei der Energie-Effizienz hapert es aber trotz moderner 7-nm-Technik immer noch etwas.
Ein Test von Marc Sauter

  1. Radeon RX 5700 (XT) AMD senkt Navi-Preise noch vor Launch
  2. AMD Freier Navi-Treiber in Mesa eingepflegt
  3. AMDGPU AMD veröffentlicht Linux-Treiber für Navi

  1. Qualcomm: Snapdragon 855 Plus hat ein Plusschen mehr Takt
    Qualcomm
    Snapdragon 855 Plus hat ein Plusschen mehr Takt

    Im zweiten Halbjahr sollen erste Smartphones wie das ROG Phone 2 von Asus mit dem Snapdragon 855 Plus erscheinen: Qualcomm verspricht mehr Takt bei den CPU-Kernen und eine schnellere Adreno-Grafikeinheit.

  2. Epic Games Store: Cloud-Saves, Mods und Zombies kommen
    Epic Games Store
    Cloud-Saves, Mods und Zombies kommen

    Verbesserungen beim Offlinemodus, dazu Speicherstände in der Cloud und etwas später Nutzerbewertungen: Epic Games hat die Pläne für seinen Epic Games Store aktualisiert. Und es gibt ein Spiel von einem Entwickler exklusiv, der bis vor kurzem noch vehement gegen solche Deals war.

  3. Remix3D: Microsoft schließt seine 3D-Modell-Datenbank komplett
    Remix3D
    Microsoft schließt seine 3D-Modell-Datenbank komplett

    Am 10. Januar 2020 ist Schluss: Microsoft wird seine Plattform Remix3D schließen. Dort konnten Mitglieder ihre 3D-Modelle teilen und diese für Powerpoint, Virtual Reality oder Minecraft benutzen. Das Unternehmen empfiehlt, beliebte Modelle vor dem Ende herunterzuladen - dann werden sie gelöscht.


  1. 17:07

  2. 17:02

  3. 15:07

  4. 14:52

  5. 14:37

  6. 14:20

  7. 14:02

  8. 13:47