Fileupload per CGI
Thomas
- 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
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.
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
ö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.
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
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.
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
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.
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
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
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
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
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
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
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