Thomas: ausführbare Dateien

Hallo!

Welche Dateien können alle auf einem Linux-Server per webinterface zum ausführen gebracht werden?

Um Missbrauch eines Upload-tools zu verhindern möchte ich es verbieten eventuell gefährliche Dateien hochladen zu lassen. Daher lasse ich Daten mit den Endungen ".shtml", ".php" nicht hochladen. Welche Endungen fehlen mir noch?

Vielen Dank
Thomas

  1. Solange du keine chmod-Rechte vergibst, die hochgeladenen Dateien auszuführen, dann brauchst du dir keine Sorgen zu machen.
    Und auch php-Dateien werden nicht tatsächlich ausgeführt. Perl über CGI dann schon eher. Kontrolliere aber einfach den Dateiheader oder benenne die hochgeladenen Dateien vor dem speichern um.

    Theoretisch kann übrigens auch jede Datei mit einer x-beliebigen Dateiendung php-Code enthalten. Die Endung ist also eine Frage der Servereinstellung.

    Lasse den Nutzer doch einfach nicht per HTTP auf diese Dateien zugreifen. Problem gelöst.

    1. Kann ich mit php die Rechte dann so umstellen, dass die Dateien NUR heruntergeladen werden können, aber nicht ausgeführt?

      Danke

      1. Natürlich. Speichere die Dateien zum Beispiel einfach in einem Ordern außerhalb des Hauptverzeichnisses zwischen und hole sie zum runterladen wieder raus. Zum Beispiel über eine Dummydatei und eine spezielle header-Anweisung mit der du die Datei downloadbar machst. Um Speicherplatz zu sparen kannst du aber auch mit gzip alle Dateien komprimieren.
        Über HTTP gibt es dann keine Chance an die Dateien zu kommen und über deine Seite kannst du steuern wer an was kommt.

        1. Wie genau soll das aussehn, also das zum downlaoden kann ich mir vorstellen, sollte doch ungefähr so aussehn:

          <?PHP
             $application = $_GET['application'];
             $dateiname = $_GET['dateiname'];
             header("Content-type: application/$application");
             header("Content-Disposition: attachment; filename=".$dateiname.".".$application."");
             readfile("../files/$dateiname.$application");
          ?>

          Aber auf welchen chmod muss ich den ordner stellen, damit die Daten nicht ausgeführt werden können, aber dieses php-script eben darauf zugreifen kann?

          Danke
          Thomas