Seite 1 von 1
htaccess via php
Verfasst: Mi Apr 15, 2009 7:43 pm
von Jside
Moin, mal noch ne Frage, ich hab ein Verzeichniss, dieses ist via .htaccess und .htpasswd gesichert. Wie bekomm ich es jetzt hin, das wenn eine php Session gesetzt ist der User nun Zugriff darauf bekommt?(indem er sich via PHP Formular einloggt) ?
Re: htaccess via php
Verfasst: Mi Apr 15, 2009 10:39 pm
von Kerli
Hängt davon ab was du machen möchtest. Eine Sperrung mit .htaccess beeinflusst ja nicht den Zugriff mit PHP. Du kannst also zb mit PHP die Dateien auslesen und dann an den Benutzer ausgeben. Was du nicht machen kannst, ist das du sozusagen die Sperrung mit PHP aufhebst.
Re: htaccess via php
Verfasst: Mi Apr 15, 2009 10:49 pm
von Jside
Kerli hat geschrieben:Hängt davon ab was du machen möchtest. Eine Sperrung mit .htaccess beeinflusst ja nicht den Zugriff mit PHP. Du kannst also zb mit PHP die Dateien auslesen und dann an den Benutzer ausgeben. Was du nicht machen kannst, ist das du sozusagen die Sperrung mit PHP aufhebst.
Funktioniert dann auch die opendir() funktion? Dürfte ja oder? php wird ja unabhänig vom apache geparst...
Re: htaccess via php
Verfasst: Do Apr 16, 2009 7:33 am
von Xin
Jside hat geschrieben:Kerli hat geschrieben:Hängt davon ab was du machen möchtest. Eine Sperrung mit .htaccess beeinflusst ja nicht den Zugriff mit PHP. Du kannst also zb mit PHP die Dateien auslesen und dann an den Benutzer ausgeben. Was du nicht machen kannst, ist das du sozusagen die Sperrung mit PHP aufhebst.
Funktioniert dann auch die opendir() funktion? Dürfte ja oder? php wird ja unabhänig vom apache geparst...
Probiere es doch aus ^^
Es sollte aber keine Probleme geben, da htaccess den Access für HTTP einschränkt. PHP ist aber ein lokal laufendes Programm, quasi der Apache persönlich. Dürfte keine Probleme geben.
Re: htaccess via php
Verfasst: Fr Nov 19, 2010 12:08 pm
von C@mper
Kerli hat geschrieben:.... Eine Sperrung mit .htaccess beeinflusst ja nicht den Zugriff mit PHP. ....
ich versuche grad ein Problem mit direkten Zugriff auf Grafiken auf meinem WebServer in den Griff zu bekommen und bin bei der Suche auf diesen Hinweis gestossen, denn genau hier liegt mein Problem.
In der htaccess sperre ich den Zugriff mit dem Eintrag
Code: Alles auswählen
<FilesMatch \.(png|gif|jpg|jpeg|pdf)$>
Order deny,allow
Deny from all
</FilesMatch>
Klappt gut, direkter Zugriff nicht mehr möglich. ABER... Nun werden meine Grafiken in den Html Seiten, welche ich mit PHP erzeuge, ebenfalls nicht mehr angezeigt.
Code: Alles auswählen
echo "<div align='right' style='border-top-width:1px;border-top-color:Gainsboro;'>".
"<a href='javascript:funOrder_Company(\"". $sFilter ."\")'><img src='images/pfeil_oben.gif' border=0></a>".
"</div>";
stellt beim Link lediglich einen Platzhalter fuer die Grafik dar.
erst mit den Zusatz
allow from localhost
in der .htaccess sehen die Seiten wieder "sauber" aus.
Also, entweder stimmt die Aussage oben nicht so ganz oder es muss noch an anderer Stelle zusätzlich konfiguriert werden (diese Stelle wuerde dann brennend interessieren).
Achsoja... habe diesen Effekt übrigens sowohl auf meinem Ubuntu mit Apache 2.2 als auch unter Windows mit xampp.
Re: htaccess via php
Verfasst: Fr Nov 19, 2010 12:33 pm
von Xin
Du verbietest allen den Zugriff auf die Dateien. (Warum?)
Wenn Du nun eine Grafik mit <img> einbindest, dann will der Browser die Datei vom Server abrufen, was Du aber verboten hast. Du könntest nun einen Umweg über PHP gehen, also ein PHP-Skript, dass Du aufrufen darfst, dass dann eine Grafik sendet. src bei <img> wäre dann etwas wie z.B. fetchpic.php?id=4711.
Aber wozu der Aufwand?
Re: htaccess via php
Verfasst: Fr Nov 19, 2010 5:24 pm
von Kerli
C@mper hat geschrieben:Klappt gut, direkter Zugriff nicht mehr möglich. ABER... Nun werden meine Grafiken in den Html Seiten, welche ich mit PHP erzeuge, ebenfalls nicht mehr angezeigt.
Du liest die Grafiken ja nicht mit PHP aus sondern gibst dem Browser nur die Adresse an der er die Grafik findet. Die Grafik mit PHP öffnen wäre zb mit file_get_contents() oder ähnlichen Funktionen.
Re: htaccess via php
Verfasst: Fr Nov 19, 2010 5:31 pm
von C@mper
Xin hat geschrieben:Wenn Du nun eine Grafik mit <img> einbindest, dann will der Browser die Datei vom Server abrufen, was Du aber verboten hast. Du könntest nun einen Umweg über PHP gehen, also ein PHP-Skript, dass Du aufrufen darfst, dass dann eine Grafik sendet. src bei <img> wäre dann etwas wie z.B. fetchpic.php?id=4711.
Kerli hat geschrieben:Du liest die Grafiken ja nicht mit PHP aus sondern gibst dem Browser nur die Adresse an der er die Grafik findet. Die Grafik mit PHP öffnen wäre zb mit file_get_contents() oder ähnlichen Funktionen.
Autsch... Danke, darüber hatte ich nicht nachgedacht.
Xin hat geschrieben:
Aber wozu der Aufwand?
Primär geht es nicht um Grafiken, sondern um Dokumente, Maps etc. (mit Grafiken hatte ich nur getestet). Diese möchte ich nur registrierten und eingeloggten Usern zugänglich machen. Wenn ich denen irgendwann mal das Login entziehe und diese sich die URL gemerkt haben, könnten sie trotzdem weiter direkt drauf zugreifen.
Dachte halt, mit 'nem htaccess wäre das mal eben kurz gemacht... werde das nun über ein PHP Script und Verzeichnissen ausserhalb des Document Root lösen.
Danke.
Re: htaccess via php
Verfasst: Fr Nov 19, 2010 7:51 pm
von Kerli
C@mper hat geschrieben:Primär geht es nicht um Grafiken, sondern um Dokumente, Maps etc. (mit Grafiken hatte ich nur getestet). Diese möchte ich nur registrierten und eingeloggten Usern zugänglich machen.
Einfacher wäre es wenn du diese Dokumente einfach in einen eigenen Ordner packst und dort zb folgende .htaccess Datei ablegst:
Code: Alles auswählen
AuthUserFile /home/sites/www.tomprogs.at/web/.htpasswd
AuthGroupFile /home/sites/www.tomprogs.at/web/.group
AuthName Documents
AuthType Basic
require user admin tom user123
Damit dürfen nur die Benutzer admin, tom und user123 auf das Verzeichnis und den Inhalt zugreifen. Das ganze kannst du natürlich auch noch mit Gruppen machen. Die Datei mit den Passwörtern .htpasswd kannst du einfach mit 'htpasswd' erstellen...
Re: htaccess via php
Verfasst: Fr Nov 19, 2010 8:36 pm
von C@mper
Danke für den Tip Kerli,
aber das ganze sollte ja kein eigenes Login bekommen, sondern Bestandteil meiner bestehenden Anwendung werden, in der die Files bereits für jeden gelistet sind aber nur registrierten Benutzern zum dl angeboten werden.
Hab's nun aber so gelöst, dass ich die Files aus dem Web Bereich der Platte verschoben habe (diese sind nun auf jeden Fall über Web nach aussen nicht mehr sichtbar/erreichbar) und dann in meiner Html File Liste einen Button mit einer Funktion für den Download anbiete. Dahinter steckt dann lediglich eine header() + readfile() Funktion.