Marc Reichelt: C++ als CGI - Anfänge und Sicherheitsaspekte

Beitrag lesen

Hallo Jeena,

Da ich mir sicher bin, dass es vielleicht noch andere da draußen geben könnte, die das interessiert, gehe ich jetzt mal ganz detailliert darauf ein.
Ja, ich bin zur Zeit auch sehr daran interessiert, und genau wie du vor allem wegen des Lerneffektes, aber auf lange Sicht schlussendlich wegen Geld.

Stimmt, das steht meistens am Ende der Schlange. Trotzdem hat der Lerneffekt ja zumeist auch den kleinen Vorteil, dass man für weitere Projekte vorsorgt, sogar bereits ohne etwas von den neuen Projekten zu wissen. ;)

Ich habe eine Appplikation mit Hilfe von PHP und MySQL erstellt, die aber auf meinem Shered Server wärend Spitzenzeiten ganz schön ins schwitzen kommt. Jetzt werden wir auf einen eigenen Server umziehen, der nur für uns arbeitet. Da hoffe ich dass wir dann bis zum zehnfachen an Anfragen mit der gleichen Software bedienen können (zur Zeit sind es ca. 2 Anfragen pro Sekunde).

Da sieht man, dass MySQL doch für solche Dinge nicht so sehr geeignet ist. Soweit ich weiß kann man auf einem derzeit üblichen Rechner mit einem GB RAM nur 100 MySQL-Anmeldungen in der Minute schaffen - das mag auch ein Gerücht sein, aber die Leistungseinbußen sind enorm, das ist wahr.

Aber der Trend geht zu noch viel mehr, so dass ich vor habe das ganze vom Prinzip her wie das CForum aufzubauen, dass die Daten, die andauernd gebraucht werden im Speicher gehalten werden und erst wenn sie nicht mehr benötigt werden (also am ende des Tages) in eine Datenbank zum Archivieren verschoben werden. Dann müsste man zum Beispiel fast überhaupt nicht mehr auf die Festplatten zugreifen und schont den Server ungemein.

Das mit dem "Im Speicher halten" ist eine sehr gute Idee, das werde ich bei meinem Projekt wahrscheinlich ebenfalls so machen. Allerdings werde ich da langfristig ziemlich viel Speicher brauchen...

  • Was sollte man generell bei Benutzung von C++-Applikationen als CGI beachten?
    Erst einmal auch die gleichen Sachen wie bei anderen Programmiersprachen, dass man keine Sicherheitslöcher reinreist ;-).

Wobei das in C++ vermutlich eine harte Aufgabe sein werden kann.
Ich werde jedenfalls vorher eine Menge in C++ programmieren, damit ich für das Projekt entsprechend gewappnet bin, und genau weiß, wo die Fehler zumeist liegen.

  • Wie sieht das mit den Benutzerrechten aus? Kann das Programm unter anderen Benutzernamen und anderen Gruppen gestartet werden?
    Ich würde pauschal sagen, dass du ja Rechte via chmod vergeben kannst

Die Rechte, Benutzer und Gruppe für die Datei sind klar, ich beziehe mich hier aber auf den Benutzer und die Gruppe, mit der das Programm dann vom Apache aus gestartet wird.

Wahrscheinlich heißt die Technik hier - wie bei PHP - suexec.

  • Gibt es gute Literaturquellen, die ihr mir bezüglich C++ als CGI empfehlen könnt?
    Hm, also so weit bin ich leider noch gar nicht, ich lese gerade Thinking in C++

Hmm, das scheint mir ein gutes Buch zu sein. Vor allem kann man es direkt online lesen, auch ein Bonus. Werde ich mir zum Lesen vormerken.
Derzeit lese ich noch C++ - Objektorientiertes Programmieren von Anfang an (die Original-Seite des Verlages zu diesem Buch ist im Firefox ziemlich unbrauchbar). Das ist ziemlich gut.
Außerdem habe ich noch von vor ein paar Jahren ein Buch übrig, nämlich das C/C++ Kompendium.

Gibt es eventuell noch gute Online-Quellen zu APIs? Beispielsweise etwas Ähnliches wie die JavaDocs für Java?

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
http://emmanuel.dammerer.at/selfcode.html