Armin Schäfer: Mal CGI Skript, mal Download

Mist, jetzt hatte ich gedacht, dass ich alle Probleme mit der Apache Installation beseitigt habe... ich verwende Apache (1.3.12) in der OS/2 Version. Mein Problem: Damit meine Skripts (OS/2 Programme mit der Endung .exe) lauffaehig sind, habe ich "AddHandler cgi-script .cgi .exe" in der Konfig Datei gesetzt.
Jetzt werden die Skripte auch einwandfrei ausgefuehrt.

Wenn ein User allerdings in der Filebase rumkramt und ein File mit der Endung .exe runterladen moechte, denkt Apache natuerlich, dass es sich um ein CGI Skript handelt, das er ausfuehren moechte. Da keine ExecCGI Rechte fuer diese Directories gesetzt sind, bekommt der Benutzer nur eine Fehlermeldung zu sehen:

-------------------------------> Beisskante <---------------------------------
Forbidden

You don't have permission to access
/f//modem/windows/win3xx.programme/winzip95.exe on this server.
-------------------------------> Beisskante <---------------------------------

Eine Loesung habe ich hier im Forum schon erhalten, aber die funktioniert nicht, oder ich bin zu bloed ein entsprechendes .htaccess File zu erzeugen:

-------------------------------> Beisskante <---------------------------------
Idee:
Setz das "AddHandler cgi-script .exe" doch mal in eine .htaccess Datei die im
cgi-bin/ liegt. (Und in der httpd.conf kommt das .exe wieder weg.)
Dann sollte es nur noch für im cgi-Verzeichnis liegende Dateien gelten.

Gruss,
Carsten
-------------------------------> Beisskante <---------------------------------

Diese .htaccess Datei habe ich verbrochen:

AuthType Basic
AuthName User
AuthGroupFile /dev/null
AddHandler cgi-script .cgi .exe

Bringt aber alles nichts, Apache bietet das File weiterhin zum Download an.

Hat jemand eine Idee wie man das Problem loesen koennte?

Ciao, Armin

  1. Hallo Armin,

    Diese .htaccess Datei habe ich verbrochen:

    AuthType Basic
    AuthName User
    AuthGroupFile /dev/null
    AddHandler cgi-script .cgi .exe

    das ist unnötig viel

    AddHandler cgi-script .exe

    müsste völlig reichen wenn nicht:

    Bringt aber alles nichts, Apache bietet das File weiterhin zum Download an.

    Wahrscheinlich ist die ergänzende Konfigurierbarkeit der .htaccess Dateien
    in der httpd.conf abgeschaltet. Such mal in httpd.conf nach :
       AllowOverride None
    bei mir steht da z.B.:

    #erstmal alles verbieten

    <Directory />
        Options FollowSymLinks
        AllowOverride None
      </Directory>

    #.... (also gehts nicht)

    .htaccess darf unterhalb Document Root alles ändern.

    #  (lokaler Testserver, bei zugänglichen Servern wäre ich da restriktiver)

    <Directory "C:/HTDOCS">
         AllowOverride All
      </Directory>

    #  ....(also gehts doch)

    #  
    #  im cgi-verzeichnis .htaccess nicht einlesen:

    <Directory "C:/APACHE/cgi-bin">
        AllowOverride None
        Options None
    </Directory>

    ... (also gehts nicht->das war die letzte, und die gewinnt!)

    und das sieht verdammt so aus, als ob speziell für das cgi-Verzeichnis
    keine Änderungen der Optionen zugelassen sind -> deshalb würde das bei
    mir z.b. nicht gehen. (Und deswegen geht es bei dir vermutlich auch nicht.)
    Das hat wohl Sicherheitsgründe und sowas muss man ja nicht ohne Not
    aushebeln. (Oder zumindest nicht mehr als unbedingt nötig.)

    Meine nächste Idee ist es, an dieser Stelle den cgi-script Handler
    für .exe Dateien hinzuzufügen:

    <Directory "C:/APACHE/cgi-bin">
        AllowOverride None

    #zusaetzlich .exe Dateien zulassen
        AddHandler cgi-script .exe

    Options None
    </Directory>

    Damit vereinbarst du den cgi-script Handler für .exe Dateien _nur_ für das
    cgi-bin Verzeichnis.
    Und wieder ungetestet, aber immerhin im Manual nachgelesen das es so gehen
    könnte.

    Vielleicht klappts ja diesmal.

    Gruss,
    Carsten

    1. das ist unnötig viel
       AddHandler cgi-script .exe

      müsste völlig reichen wenn nicht:

      Jepp, das hat wirklich voellig ausgereicht!

      Wahrscheinlich ist die ergänzende Konfigurierbarkeit der .htaccess Dateien
      in der httpd.conf abgeschaltet. Such mal in httpd.conf nach :
         AllowOverride None

      Stimmt, das war es gewesen. Ich hatte gelesen, das man das Override
      erade in CGI Directorys abschalten sollte. Habe ich natuerlich getan,
      und jetzt spaeter nicht mehr dran gedacht.

      und das sieht verdammt so aus, als ob speziell für das cgi-Verzeichnis
      keine Änderungen der Optionen zugelassen sind -> deshalb würde das bei
      mir z.b. nicht gehen. (Und deswegen geht es bei dir vermutlich auch nicht.)

      Genau so ist es gewesen.

      Das hat wohl Sicherheitsgründe und sowas muss man ja nicht ohne Not
      aushebeln. (Oder zumindest nicht mehr als unbedingt nötig.)

      Ich hoffe, ich habe damit jetzt keine allzu grosse Sicherheitsluecke
      aufgerissen.

      Meine nächste Idee ist es, an dieser Stelle den cgi-script Handler
      für .exe Dateien hinzuzufügen:

      Werde ich austesten, wenn ich mit der anderen Methode auf Schwierigkeiten stossen sollte.

      Vielleicht klappts ja diesmal.

      Vielen Dank, diesmal hat es funktioniert!

      Ciao, Armin