htaccess via php

Fragen zum Thema HTML, JavaScript, PHP
Antworten
Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

htaccess via php

Beitrag von Jside » Mi Apr 15, 2009 7:43 pm

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) ?

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: htaccess via php

Beitrag von Kerli » Mi Apr 15, 2009 10:39 pm

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.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: htaccess via php

Beitrag von Jside » Mi Apr 15, 2009 10:49 pm

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...

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: htaccess via php

Beitrag von Xin » Do Apr 16, 2009 7:33 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

C@mper
Beiträge: 88
Registriert: Mo Nov 15, 2010 3:30 pm

Re: htaccess via php

Beitrag von C@mper » Fr Nov 19, 2010 12:08 pm

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.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: htaccess via php

Beitrag von Xin » Fr Nov 19, 2010 12:33 pm

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?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: htaccess via php

Beitrag von Kerli » Fr Nov 19, 2010 5:24 pm

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.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

C@mper
Beiträge: 88
Registriert: Mo Nov 15, 2010 3:30 pm

Re: htaccess via php

Beitrag von C@mper » Fr Nov 19, 2010 5:31 pm

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.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: htaccess via php

Beitrag von Kerli » Fr Nov 19, 2010 7:51 pm

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...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

C@mper
Beiträge: 88
Registriert: Mo Nov 15, 2010 3:30 pm

Re: htaccess via php

Beitrag von C@mper » Fr Nov 19, 2010 8:36 pm

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.

Antworten