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

Ich dachte C waere sicher..?

Für Konsolen-Talk gibt es natürlich auch einen Raum ohne nerviges Gedöns oder Flamewar im Freiraum!
  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. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. unimed Abrechnungsservice für Kliniken und Chefärzte GmbH, deutschlandweit (Home-Office)
  2. Kassenärztliche Vereinigung Niedersachsen, Hannover (Home-Office möglich)
  3. Deutsches Krebsforschungszentrum (DKFZ), Heidelberg
  4. Deutsche Gesellschaft für Internationale Zusammenarbeit (GIZ) GmbH, Bonn

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote


Haben wir etwas übersehen?

E-Mail an news@golem.de


Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

    1. HP Envy 14 im Test: Eine gelungene Alternative zum Lenovo Thinkpad
      HP Envy 14 im Test
      Eine gelungene Alternative zum Lenovo Thinkpad

      Das HP Envy 14 ist mit Tiger-Lake-SoC und Nvidia-GPU schnell und ausdauernd. Es fällt schwer, an der guten Kombination etwas zu bemängeln.

    2. Elektroautos: Autoverbände fordern schnelleren Ausbau von EU-Ladenetz
      Elektroautos
      Autoverbände fordern schnelleren Ausbau von EU-Ladenetz

      Der Verband der Automobilindustrie fordert von der EU-Kommission, beim europäischen Ladenetz für E-Autos endlich zu liefern.

    3. MBOS: Daimler plant eigenes Betriebssystem
      MBOS
      Daimler plant eigenes Betriebssystem

      In Sindelfingen entsteht ein Software-Entwicklungszentrum für Daimlers Betriebssystem MBOS. 1.000 Software-Entwickler sollen dort agil tätig werden.


    1. 09:00

    2. 07:50

    3. 07:38

    4. 07:24

    5. 07:00

    6. 17:32

    7. 16:36

    8. 12:17