Thomas: Fileupload per CGI

Hallo,
ich habe vor auf meiner Website für den Transport von Dateien von der Schule nach Hause einen Fileupload einzubauen, damit ich die Dateien nachher zu Hause wieder herunterladen kann.
Die entsprechende Anleitung habe ich mir hier bei SELFHTML schon durchgelesen.
Ich kenne mich jedoch mit CGI/Perl noch nicht so gut aus.
Nun hab ich mir gedacht, die HTML-Seite für den Upload in einen Passwortgeschützen Ordner zu legen.
So wollte ich eventuellem Missbrauch vorbeugen.

Ist das eine gute Idee, oder liege ich da völlig daneben?

MfG
Thomas

  1. morgens,

    Nun hab ich mir gedacht, die HTML-Seite für den Upload in einen Passwortgeschützen Ordner zu legen. So wollte ich eventuellem Missbrauch vorbeugen.
    Ist das eine gute Idee, oder liege ich da völlig daneben?

    Das ist sehr schwer zu sagen. Immerhin hast du ja bereits mitbekommen, daß dein "Upload" über CGI erfolgen muß, und das entsprechende CGI-Script liegt mit allergrößter Wahrscheinlichkeit sowieso in dem "geschützten" Verzeichnis cgi-bin.

    Du kannst das natürlich so machen, daß deine HTML-Datei, die das zugehörige Formular enthält, in einem per .htaccess geschützten Verzeichnis liegt. Verkehrt ist die Idee nicht, ich würde sie aber als ein bissel "bemüht" bezeichnen. Einfacher ist es meiner Meinung nach, in dein CGI-Script unmittelbar eine Paßwortabfrage einzubauen und den Verzeichnisschutz wegzulassen.

    Grüße aus Berlin

    Christoph S.

    1. Hallo Christoph,

      Du kannst das natürlich so machen, daß deine
      HTML-Datei, die das zugehörige Formular
      enthält, in einem per .htaccess geschützten
      Verzeichnis liegt. Verkehrt ist die Idee nicht,
      ich würde sie aber als ein bissel "bemüht"
      bezeichnen. Einfacher ist es meiner Meinung
      nach, in dein CGI-Script unmittelbar eine
      Paßwortabfrage einzubauen und den
      Verzeichnisschutz wegzulassen.

      Heisst, du moechtest lieber einmal mehr das Rad neu
      erfinden?

      Gruesse,
       CK

      --
      Nichts zu begehren, dass ist der Weg.
      1. öhm ...

        Heisst, du moechtest lieber einmal mehr das Rad neu erfinden?

        Wenns not tut ... aber ich verstehe dich jetzt grade nicht.

        Wir wissen noch nicht, was das für ein CGI-Script ist. Die meisten, die hier nachfragen, assoziieren das mit PERL, aber es ist ja auch anderes möglich.

        Ich meine tatsächlich, daß es nicht zwingend nötig, aber durchaus möglich ist, ein HTML-Dokument, das ein Upload-Script aufruft, in ein gesondert geschütztes Verzeichnis zu legen. Der "Schutz" kann aus dem Script selbst erfolgen.

        Grüße aus Berlin

        Christoph S.

        1. Hallo Christoph,

          Ich meine tatsächlich, daß es nicht zwingend
          nötig, aber durchaus möglich ist, ein
          HTML-Dokument, das ein Upload-Script aufruft,
          in ein gesondert geschütztes Verzeichnis zu
          legen. Der "Schutz" kann aus dem Script selbst
          erfolgen.

          Wozu? .htaccess bietet alles, was man braucht,
          ohne, dass man den Finger dafuer krumm legen muss.

          Gruesse,
           CK

          --
          Microsoft: Where do you want to go today?
          Linux: Where do you want to go tomorrow?
          FreeBSD: Are you guys coming, or what?
          1. morgens CK,

            .htaccess bietet alles, was man braucht, ohne, dass man den Finger dafuer krumm legen muss.

            Sicher, da sind wir absolut derselben Meinung. Aus der Fragestellung geht aber nicht hervor, daß der "Verzeichnisschutz" mit .htaccess vorgenommen wird, und aus der immerhin sehr achtbaren Anmerkung

            Die entsprechende Anleitung habe ich mir hier bei SELFHTML schon durchgelesen

            geht nicht hervor, daß Thomas einen Provider hat, der einen Verzeichnisschutz per .htaccess zuläßt bzw. welchen Webserver der Provider überhaupt betreibt. Daher habe ich eine _mögliche_  -  aber keineswegs die einzigwahre  -  Alternative angedeutet.

            Ich habe bei unterschiedlichen Gelegenheiten bereits schmerzvoll erfahren dürfen, daß es tatsächlich mitunter nötig ist, "das Rad neu zu erfinden" ;-)

            Außerdem: wenn du wie auch immer erfahren hast (im Unterricht verplappert), welchen Scriptnamen .../cgi-bin/upload.cgi hat, kannst du es direkt aufrufen und brauchst dich um ein eventuell in einem paßwortgeschützten Verzeichnis liegendes HTML-Formular nicht mehr zu kümmern, das kann so sehr geschützt sein, wie es will. Es ist meines Erachtens durchaus sinnvoll, gewissermaßen als "Notbremse" ins Script nochmal eine Paßwortabfrage einzubauen, auch wenn damit unter Umständen das Rad neu erfunden wird.

            Grüße aus Berlin

            Christoph S.

            1. Hallo Christoph,

              geht nicht hervor, daß Thomas einen Provider
              hat, der einen Verzeichnisschutz per .htaccess
              zuläßt bzw. welchen Webserver der Provider
              überhaupt betreibt. Daher habe ich eine
              _mögliche_  -  aber keineswegs die einzigwahre
              -  Alternative angedeutet.

              Das ist dir eben erst eingefallen, gibs zu! ;)

              Wie dem auch sei, sollte das nicht moeglich sein,
              ist das der einzige sinnvolle Fall fuer so
              eine Erweiterung.

              Außerdem: wenn du wie auch immer erfahren hast
              (im Unterricht verplappert), welchen
              Scriptnamen .../cgi-bin/upload.cgi hat, kannst
              du es direkt aufrufen und brauchst dich um ein
              eventuell in einem paßwortgeschützten
              Verzeichnis liegendes HTML-Formular nicht mehr
              zu kümmern, das kann so sehr geschützt sein,
              wie es will.

              <Files "upadload.cgi">
                AuthType Basic
              </Files>

              Es ist meines Erachtens durchaus sinnvoll,
              gewissermaßen als "Notbremse" ins Script nochmal
              eine Paßwortabfrage einzubauen, auch wenn damit
              unter Umständen das Rad neu erfunden wird.

              Noe.

              Gruesse,
               CK

              --
              Wer sich zu überschwänglich freut, wir später Grund zum Weinen haben.
              1. hallo, jaa, also, räusper ...

                geht nicht hervor, daß Thomas einen Provider
                hat, der einen Verzeichnisschutz per .htaccess
                zuläßt bzw. welchen Webserver der Provider
                überhaupt betreibt.
                Das ist dir eben erst eingefallen, gibs zu! ;)

                Pah, was denksu denn von mir. Ich tu doch immer bloß so, also ob ich nur so getan hätte, als obs mir grade erst eingefallen wäre. Dabei hab ich das von vorneherein  -  jaja, schon gut.

                Wie dem auch sei, sollte das nicht moeglich sein,
                ist das der einzige sinnvolle Fall fuer so
                eine Erweiterung.

                Siehst du, hab ich ja gleich gewußt. Aber du wolltest unbedingt das letzte Wort haben.

                <Files "upadload.cgi">
                  AuthType Basic
                </Files>

                Du bist ganz einfach "apache-fixiert" *g*
                Klar, wenn ein Apache verwendet wird und eigene .htaccess eingesetzt werden dürfen, ist das eine prima Lösung. Darum brauchen wir wirklich nicht zu streiten.

                Komm, wir gehen erstmal nen Glas Mahonienwein trinken (Holunderwein is alle) und warten ab, was Thomas sagt  -  er sollte genug Sachen als Anregungen jetzt gefunden haben und wird sich ja hoffentlich wieder melden, wenns trotzdems nicht hingehaut hat.

                Grüße aus Berlin

                Christoph S.

                1. Hallo Christoph,

                  <Files "upadload.cgi">
                    AuthType Basic
                  </Files>

                  Du bist ganz einfach "apache-fixiert" *g*

                  Noe. Du hattest es nur als 'Sicherheitsnagel'
                  hingestellt, wenn man die URL des Scriptes direkt
                  herausfindet. Das ist es nicht.

                  Komm, wir gehen erstmal nen Glas Mahonienwein
                  trinken (Holunderwein is alle) und warten ab,
                  was Thomas sagt  -  er sollte genug Sachen als
                  Anregungen jetzt gefunden haben und wird sich
                  ja hoffentlich wieder melden, wenns trotzdems
                  nicht hingehaut hat.

                  Was zum Teufel ist Mahonienwein? Ich glaub, ich
                  nehm lieber Bailey's ;) Schmeckt mir besser.

                  Gruesse,
                   CK

                  --
                  Ich bewundere wirklich den Sinn der Bienen für kollektive Verantwortung. Obwohl sich einzelne Bienen hin und wieder bekämpfen, herrscht zwischen Ihnen grundsätzlich ein starkes Gefühl für Eintracht und Zusammenarbeit. Wir Menschen gelten als sehr viel weiter entwickelt, doch mitunter rangieren wir sogar hinter kleinen Insekten.
                  1. Sup!

                    Was zum Teufel ist Mahonienwein? Ich glaub, ich
                    nehm lieber Bailey's ;) Schmeckt mir besser.

                    Bailey's? Ist das nicht das Zeugs, das "so schmeckt wie ein Kuss"?

                    Nanananana! Du weisst doch, so Computerspacken wie wir trinken nicht, und Küssen kommt erst gar nicht in Frage... wenn man gerade küsst, kann man ja die Server-Logs gar nicht mehr sehen! Ich hab's selbst mal ausprobiert, aber nach ca. 1200 Jiffies habe ich die Krise gekriegt...

                    Gruesse,

                    Bio

                    --
                    Ich will Euch doch nur helfen!!!
                2. Hallo,

                  <Files "upadload.cgi">
                    AuthType Basic
                  </Files>

                  Du bist ganz einfach "apache-fixiert" *g*
                  Klar, wenn ein Apache verwendet wird und eigene .htaccess eingesetzt werden dürfen, ist das eine prima Lösung. Darum brauchen wir wirklich nicht zu streiten.

                  <senf action="gebe" direction="dazu">

                  Diese spezielle Lösung funktioniert aber nur, wenn im Apache 1.3.x AllowOverride All für das entsprechende Verzeichnis eingestellt ist. Und das wird man imho wohl bei keinem Provider finden. :)
                  </senf>

                  Gruß Alex

                  --
                  http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
                  ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
                  1. Hallo Alex,

                    Diese spezielle Lösung funktioniert aber nur,
                    wenn im Apache 1.3.x AllowOverride All für das
                    entsprechende Verzeichnis eingestellt ist. Und
                    das wird man imho wohl bei keinem Provider
                    finden. :)

                    Hoe? Noe. AllowOverride AuthConfig reicht:

                    <Directory "/home/ckruse/www/default/htdocs">
                        AllowOverride None
                        AllowOverride AuthConfig
                      </Directory>

                    Dann in der .htaccess:

                    <Files "index.html">
                      AuthType Basic
                      AuthName "blahr"
                      AuthUserFile "/home/ckruse/www/default/htdocs/users.dat"
                      require valid-user
                    </Files>

                    Gruesse,
                     CK

                    --
                    Das Leben ist wie ein Kartenspiel: was dir gegeben wurde, ist vorbestimmt. Doch wie du damit spielst, ist deine Entscheidung.
                    1. Hallo,

                      Diese spezielle Lösung funktioniert aber nur,
                      wenn im Apache 1.3.x AllowOverride All für das
                      entsprechende Verzeichnis eingestellt ist. Und
                      das wird man imho wohl bei keinem Provider
                      finden. :)

                      Hoe? Noe. AllowOverride AuthConfig reicht:

                      <Directory "/home/ckruse/www/default/htdocs">
                          AllowOverride None
                          AllowOverride AuthConfig
                        </Directory>

                      Dann in der .htaccess:

                      <Files "index.html">
                        AuthType Basic
                        AuthName "blahr"
                        AuthUserFile "/home/ckruse/www/default/htdocs/users.dat"
                        require valid-user
                      </Files>

                      Ja, Du hast Recht. Ich bin einem Fehler in meinem Apache-Buch aufgesessen (von Lars Eilebrecht, und der sollte imho wissen wie's richtig ist). Dort steht, daß <File> usw. nur möglich sei, wenn AllowOverride auf All steht. Das habe ich auch immer brav befolgt. :(

                      Gruß Alex

                      --
                      http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
                      ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
  2. moin,

    Ich kenne mich jedoch mit CGI/Perl noch nicht so gut aus.
    Nun hab ich mir gedacht, die HTML-Seite für den Upload in einen Passwortgeschützen Ordner zu legen.
    So wollte ich eventuellem Missbrauch vorbeugen.

    Ist das eine gute Idee, oder liege ich da völlig daneben?

    Gute Idee!
    Das Upload-CGI kann auch in das /cgi-bin/ wo andere Scripts liegen die JEder ausführen kann. Die Kontrolle machst du mit .htaccess

    =ein script unter kontrolle
    AuthUserFile /home/.passwordfile
    AuthName "Maintenance"
    AuthType Basic
    <Files maint.cgi>
            require valid-user
    </Files>
    =cut

    =mehrere Scripts...
    AuthUserFile /home/.passwordfile
    AuthName "Maintenance"
    AuthType Basic
    <Files ~ "maint.cgi|manfile.cgi|manage.pl" >
            require valid-user
    </Files>
    =cut

    siehe auch
    http://i-netlab.de/cgi-bin/index.cgi?vi=Htpasswd

    Tipp: Mach das Formular UND den UPLOAD in EINEM Script.

    Erwin

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?
    1. Hallo,

      Das Upload-CGI kann auch in das /cgi-bin/ wo andere Scripts liegen die JEder ausführen kann. Die Kontrolle machst du mit .htaccess

      verstehe ich das richtig,er möchte doch die upload daten schützen und nicht das cgi file oder?
      wenn jemand was hochladen möchte muss der ja das passwort haben?!
      Dann würde nähmlich ein passwort gescütztes verzeichniss für die daten genügen,da das cgi ja die vollen server rechte besitzt.
      dann könnte man diese htaccess version ins daten verzeichniss reinstellen ohne htpasswd:

      AuthUserFile /dev/null
      AuthGroupFile /dev/null
      AuthName RESTRICTED
      AuthType Basic

      <Limit GET POST>
      require valid-user
      </Limit>

      Gruss vom Alain

      --
      ..."Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)