screamfine Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 Hallo zusammen ... ich möchte über ein Script PDF-Dokumente in ein Unterverzeichnis auf einen Webserver laden. Dann bekommen bestimmte Benutzer einen Login für einen Adminbereich. Wenn Sie sich dort einloggen bekommen Sie alle PDF-Dokumente aufgelistet und sollen diese anschauen und auch speichern können. Soweit so gut. Nun soll es aber so sein, dass diese oder andere Besucher der Webseite die PDF-Dokumente nicht direkt aufrufen können (also z.B. http://www.meinserver.de/dokument.pdf), sondern nur wenn Sie eingeloggt sind. Welche Möglichkeiten habe ich, um das zu realisieren? Und wie funktioniert es? Freue mich über jede Antwort. Danke vorab! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 Hi, mit .htaccess oder du schreibst ein Skript das die pdfs von der Platte außerhalb des Document Root Verzeichnisses deines Webservers ließt und an den Surfer ausliefert. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
screamfine Geschrieben 24. Februar 2005 Autor Teilen Geschrieben 24. Februar 2005 Hallo! Danke für die Antwort. Wie würde das denn mit htaccess funktionieren? Ein Beispiel würde mir sehr viel weiterhelfen .... Ich habe auch schon von der Lösung mit htaccess gehört, aber ich kann mir nicht vorstellen wie das funktionieren soll, dass man einerseits nicht direkt auf die Datei über den Browser zugreifen darf andererseits aber das Script genau dieses PDF aufruft ?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 Es gibt prinzipiell zwei Möglichkeiten: Absicherung direkt über den Webserver mittels .htaccess oder ähnlichem (wie oben angesprochen). Das hat allerdings den Nachteil, dass es schlecht konfigurierbar ist, da du alle User immer direkt im Apache anlegen und verwalten musst. Die zweite Möglichkeit wäre die Datei selber nicht im öffentlichen Verzeichnis des Webservers zu speichern, sondern irgendwo in einem anderen - privaten - Verzeichnis. Über eine dynamische Seite (z.B. PHP) liest du dann - nach erfolgter Anmeldung durch den Benutzer - diese Datei aus, und schickst sie dann manuell an den User, als quasi ein File-Relay. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
screamfine Geschrieben 24. Februar 2005 Autor Teilen Geschrieben 24. Februar 2005 hm.... wo kann ich dazu ein Beispiel finden?! Also htaccess wäre mir lieber.... verstehe nur nicht warum ich verschiedene User anlegen müsste .... denn im Prinzip ist das PHP-Script doch der User und das Script ist ja immer dasselbe ?!?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 verstehe nur nicht warum ich verschiedene User anlegen müsste Müssen nicht. Du kannst theoretisch ein und dasselbe Passwort für alle User verwenden, wenn dann allerdings einer ausgeschlossen werden soll, wegen Missbrauch o.ä. dann musst du direkt an alle anderen auch ein neues Passwort vergeben. Wenn das nur ein kleiner Kreis ist - kein Problem, ansonsten musst du dir schon eine kleine Userverwaltung anlegen. denn im Prinzip ist das PHP-Script doch der User Hä? Wie kann dein ein PHP Script ein User sein? Das müsstest du mir schon erklären. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 hm.... wo kann ich dazu ein Beispiel finden?! Also htaccess wäre mir lieber.... verstehe nur nicht warum ich verschiedene User anlegen müsste .... denn im Prinzip ist das PHP-Script doch der User und das Script ist ja immer dasselbe ?!?! Ja das Script ist und bleibt dasselbe, jedoch können sich über dieses Script verschiedene User zugriff auf deine Dateien beschaffen. Wenn du nun 1 Passwort für 50 User nutzt haste schnell mal 100 User, da einer das PW weitergegeben hat und da es für jeden gleich ist, kann sich jeder einloggen. Wenn du nun aber jedem User einen eigenen Account gibst ist diese Weitergabe des PWs eher geringer. Zwar nicht auszuschliessen aber geringer. Du könntest auch die Zugriffe loggen und ab 3 mal oder so erstma sperren und nochmal kontrollieren was da los ist und ob da wer anderes drauf zugreift. Eine Alternative wäre auch die Dateien in die Datenbank zu packen, jedoch zieht das, falls die Dateien gross sind, Platz und das sollte nicht der Sinn der Sache sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
screamfine Geschrieben 24. Februar 2005 Autor Teilen Geschrieben 24. Februar 2005 Ok, eine kleine Userverwaltung ist erstmal nicht notwendig. Ich brauche wirklich nur einen Zugang für alle Kunden und einen Zugang für den Admin. Die Kunden haben keine Rechte ausser die PDFs aufgelistet zu sehen und diese dann anklicken / aufrufen zu können. Nur dürfen die PDFs nicht OHNE erfolgten, erfolgreichen Login geöffnet / angesehen werden können. Würde das so wie ich das beschrieben habe mit htaccess funktionieren und wenn ja, wie genau?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 http://www.google.de/search?hl=de&q=htaccess+generator&btnG=Google-Suche&meta= guck da mal ein wenig rum. Ich kann leider nur sagen, dass ich es nie wirklich hinbekommen habe htaccess zum laufen zu bekommen, aber liegt bestimmt an mir Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Krischan Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 http://www.kaweb.de/php/software.php <-- ht-manager. dafür muß man natürlich den absoluten path zum verzeichnis, in dem die dateien liegen, kennen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iscariot Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 Es gibt prinzipiell zwei Möglichkeiten: PHP bietet auch Module fuer PAM und macht damit einiges Moeglich. Absicherung direkt über den Webserver mittels .htaccess oder ähnlichem (wie oben angesprochen). Das hat allerdings den Nachteil, dass es schlecht konfigurierbar ist, da du alle User immer direkt im Apache anlegen und verwalten musst. Dann nimmt man das Beste von Beidem. http://docs.php.net/en/features.http-auth.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
screamfine Geschrieben 24. Februar 2005 Autor Teilen Geschrieben 24. Februar 2005 Hallo ihr. Also ich habe nen Tip bekommen, dass ich es mal mit folgendem Script versuchen sollte: das verzeichnis mit den pdfs abriegeln per .htaccess Quellcode: Order deny,allow Deny from all Allow from localhost Allow from 127.0.0.1 dann in dem php file per session halt regeln wer berechtigt ist, und wer nicht, und dann die php so öffnen lassen: PHP-Quellcode: <?php $file = '/geschuetzterordner/test.pdf'; header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="'.$file.'"'); readfile($file); ?> Das funktioniert nicht, WEIL wenn ich das Skript aufrufe kommt das hier: Warning</b>: readfile(): open_basedir restriction in effect. File(/geschuetzterordner/test.pdf) is not within the allowed path(s) Warning</b>: readfile(/geschuetzterordner/test.pdf): failed to open stream: Operation not permitted in ... und so weiter.... Und wenn ich das so schreibe: PHP-Quellcode: <?php $file = './geschuetzterordner/test.pdf'; header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="'.$file.'"'); readfile($file); ?> kommt zwar kein Fehler mehr, aber er frägt mich ob ich die Datei 'geschuetzterordner' öffnen oder speichern möchte .... mache ich denn was mit der verzeichnisangabe falsch ....!?! Zusatzinfo: auf meinem server ist safe-mode: ON. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 './geschuetzterordner/test.pdf' und '/geschuetzterordner/test.pdf' sind 2 verschiedene verzeichniss! weisst du wo dein verzeichnis liegt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
screamfine Geschrieben 24. Februar 2005 Autor Teilen Geschrieben 24. Februar 2005 './geschuetzterordner/test.pdf' und '/geschuetzterordner/test.pdf' sind 2 verschiedene verzeichniss! weisst du wo dein verzeichnis liegt? ja klar weiss ich wo das liegt. meinedomain.de/geschuetzterordner/test.pdf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 Warning</b>: readfile(): open_basedir restriction in effect. File(/geschuetzterordner/test.pdf) is not within the allowed path(s) Hier steht doch was das Problem ist. siehe: http://de2.php.net/features.safe-mode Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 25. Februar 2005 Teilen Geschrieben 25. Februar 2005 Hier steht doch was das Problem ist. siehe: http://de2.php.net/features.safe-mode Wenn du direkt an die PHP.ini kannst trag dein Verzeichniss da ein. Ansonsten sollte: ini_set('open_basedir", '/geschuetzterordner'); [/php] helfen meiner Meinung nach war bloß der Pfad falsch. Wenn er auf einem VServer z.b. von Strato arbeitet, dann hat er nur berechtigungen innerhalb seines ServerRoots. Da kann er nicht einfach in "/geschützerordner" gehen. @ Threadsteller: Auf welchem Pfad liegt das PHP Script mit dem du in den Geschützten Ordner zugreifen willst? hast du das auch Online damit man sich das ma anschauen kann? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 25. Februar 2005 Teilen Geschrieben 25. Februar 2005 Wenn er auf einem VServer z.b. von Strato arbeitet, dann hat er nur berechtigungen innerhalb seines ServerRoots. Da kann er nicht einfach in "/geschützerordner" gehen. Stimmt, PHP geht ja vom Server Root aus nicht vom Domain Root. Und ein Öffnen sollte ja auch für das eigene Verz. und alle Unterverzeichnisse möglich sein (trotz open_basedir). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.