Beiträge von 7Saturn im Thema „Saubere Netzwerkprogrammierung – wie/womit lernen?“

    Da muss man sich schon durch die Literatur oder das Internet wühlen und wird zu jedem Thema hier und da was finden.

    Drum frage ich hier. :wink:

    In Profi-Firmen gibt es Seminare und Schulungen (extern oder intern) zu dem Thema - von Profis für zukünftige Profis.

    Ja, da muss ich auch mal nachhaken, ob da nicht was geht. Man kann sich nicht immer hin stellen und was davon faseln, dass keiner im Betrieb die Dinge versteht, aber dann seine Mitarbeiter nicht schulen lassen. Meine Frage war zwar mehr privater Natur, aber da ist es ähnlich.

    Konkreteres Beispiel: Man will einen Master-Server für ein Quake-artiges Spiel schreiben. Das Protokoll ist im Wesentlichen ausdefiniert, man muss es nur implementieren. Der eigentliche Job ist ja easy. Sehr low-level, sehr rudimentär, schnell umgesetzt, wenn es um die reine Funktionalität geht. Aber was mache ich z. B. gegen zu dicke Anfragen, die irgendwelche Buffer platzen lassen (falls es das in dem Zusammenhang überhaupt gibt, ihr merkt schon, dass ich da schwimme)? Oder Flooding? Oder, oder, oder... Blödestenfalles wird die Anwendung für was missbraucht, was so nicht vorgesehen ist. Ich hätte halt nicht mal eine Idee, wie ich das angehe. Jetzt ist UDP in dem Fall ziemlich handzahm, weil es keine Antworten verlangt. Man könnte ein einfaches ingore machen, wenn mehr als 5 Anfragen in 10 Sekunden kommen, oder so. Und doch wäre es für mich eben eine prinzipiellere Frage, wie mit solchen Dingen handwerklich umgegangen wird. Wo bzw. wie lernen denn das die Profis? Die kucken doch wohl auch nicht nur in fremdem Code nach. Ich weiß, nicht sehr spezifisch, die Anfrage. Aber ich bin ja auch ein Anfänger und weiß nicht mal, wo ich da am besten anfange...

    Mir ging's gar nicht mal so sehr um Standard-Protokolle. Dafür gibt's ja oft schon sehr gute Libraries. Mal ein Szenario: Man entwirft ein Spiel und baut dafür Clients und Server. Diese Kommunikation herzustellen ist an und für sich einfach. Aber schon da geht's los: Wie sorge ich dafür, dass mir keiner in den Server einbricht? Oder mir den einfach durch genug Anfragen abschießt? Oder mit einem getürkten Server die Clients als Einfallstore nutzt. Solche Fragen meine ich damit, dass ich, wenn ich Software gestalte, nicht diese Sorten Löcher offen habe. Das was die vom BSI da beschreiben, sind mehr so Grob-Beschreibungen, was ich eben gesehen habe.

    Gibt es eigentlich irgend ein (einigermaßen aktuelles) Buch, das einem Anfänger erklärt, wie man sauber Netzwerkanwendungen schreibt? Aktuell stümpere ich ja fröhlich vor mich hin, und bin zufrieden, wenn die Anwendung macht, was ich von ihr erwarte. Aber das war's im Prinzip auch schon.

    Ich mein, es gibt Firmen, die Security Audits von Software machen. Es muss also wohl irgend eine Art »anerkannter Stand der Technik« dahinter stecken, also Konzepte, Do's & Dont's, was man bei der Netzwerkprogrammierung so machen kann/sein lassen sollte. Gibt's dazu nicht irgend einen Schinken, der dem verständigen Leser diese Dinge näher bringt? Ich mein, ich würde ja nicht mal wissen, wie man einen Bufferoverflow verhindert, geschweige dessen, woran ich erkenne, dass ich potenziell eine solche Angriffsfläche liefere. Dann gibt's sicher noch 1000 andere solche Dinge. Hat kennt da jemand selbst ein Buch, das er empfiehlt? Deutsch oder Englisch sollte es sein, sonst kann ich nicht viel damit anfangen... :wink: