Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

1

21.08.2007, 11:06

CGI (Web) - Sicherheitsrichtlinen, Hoster

Hi zusammen

Ich will eigentlich schon länger mich mit CGI (common-gateway-interface, nicht computer-generated-image !) beschäftigen.

Allerdings scheiterst bereits bei einem kleinen Hallo-Welt, beziehungsweise meinem Webhoster. Webhoster ist auf Suse und Apache, ich habe ein kleines CGI-Programm in C++ geschrieben, auf Ubuntu kompiliert und auch problemslos laufen lassen können.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>

using namespace std;

int main()
{

     cout << "Content-type: text/html" << endl; // Diese Ausgabe muss jedes

     cout << endl;                              // CGI-Programm als erstes erzeugen


     cout << "<html><head><title>HUI!</title></head><body><p>blablablabla</p></body></html>";

    return 0;
}


Auf dem Webserver gabs immer nur nen 500 Fehler, ungültiger Content-Type. Bei mir lokal auf Ubuntu und Apache keine Probleme.
Nach langem hin- und her hat der Support des Webhosters meine Vermutung bestätigt dass es an deren Sicherheitseinstellungen liegt, dass das Programm gar nicht bis zur Ausgabe des Content-Types kommt und dass meine Deklaration nicht ungültig ist.

Zitat von »"Mein Hoster"«


Also das Problem liegt daran, dass Sie aus sicherheitsgründen nicht auf die
entsprechenden Libraries zugreifen können um das Script auszuführen. Diese
Sicherheitsrichtlinie schützt davor, dass 3. Personen oder Angreifer, über
unsauber programmierten Scripte und Applikationen nicht X-Beliebige
Anwendungen auf dem Server starten können. Leider kann ich diese
Einschränkung nicht lockern, da ansonsten der Serverbetrieb beeinträchtigt
werden könnte.


Ich verstehe nicht warum das Ausgeben einer gewöhnlichen "Hallo
Welt"-Meldung nicht möglich ist, CGI wurde doch dafür entwickelt
Programme in einem sicheren Kontext (Sandbox/Softwarefirewall)
auszuführen. Für eine stdout-Ausgabemeldung sollten eigentlich nicht
soviele Berechtigungen notwenig sein, schon gar keine die Zugriff
auf das System ermöglichen meiner Meinung nach, aber so detailiert
kenn ich das CGI-Berechtigungssystem nicht dass ich dies abschliessen
beurteilen kann. Was immer bleibt ist natürlich die Möglichkeit von
fehlerhaften Code des CGI-Programmierers, aber gerade darum gibts ja
die Sandbox.

Oder irre ich mich da ?
Jemand mit Erfahrungen zum CGI-Sicherheitssystem da ?

Und habt ihr Vorschläge von Webhostern die auch CGI im Angebot haben (oder vserver), und einigermassen kostengünstig sind ? (Privates Webhosting, bin kein Geschäftskunde)

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

2

21.08.2007, 11:54

Was passiert wenn du das ganze mit printf machst? Ich hab bei CGI bisher immer nur Perl genutzt, um ehrlich zu sein wusste ich nichtmal das man dort Kompilate einsetzen kann. Hast du deinen Quellcode denn auch unter Linux kompiliert?

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

3

21.08.2007, 12:14

Wie geschrieben hab ich es auf Linux (Ubuntu) kompiliert.

printf() hab ich noch nicht versucht, werde ich heute abend machen. danke für den tipp :)

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

21.08.2007, 12:16

Ah sorry, das hatte ich überlesen :oops:

Nur mal Interessenhalber: Stehen dir in den Kompilaten auch die üblichen Umgebungsvariablen zur Verfügung?

Werbeanzeige