php htaccess ohne htuser auth sondern mit sql-db

php htaccess ohne htuser auth sondern mit sql-db

am 17.09.2006 15:06:32 von Oliver Bleckmann

Hi Leute,

mein Bruder hat mir gerade eine schöne Frage gestellt, auf die ich gerade so
keine
Antwort wußte...

Wenn ich mich in php-Pages bewege, mit session-Contols arbeite und meine
User in einer SQL-DB
pflege, wie schütze ich die Inhalte eines Verzeichniss (Stichwort htaccess)
z.B. Bilder die zwar
per php eingebunden werden, nicht aber von unangemeldeten Nutzern "gebrowst"
werden sollen...
Oder aders gesagt, ich hab' meine User in der DB, will also keine htuser
datei mehr pflegen,
wie bringe ich der htaccess Datei bei sich user und pw us der DB zu holen,
bzw. - und hier
überlege ich gerade - wie erlaube ich nochmal nur den php Interpreter das
Verzeichnis zu nutzen
per htaccess Datei. Ist das evtl. problematisch?
Ich meine da war was. Ich selbst stehe ja mehr auf perl und das klassische
unverschnörkelte login über Browserdialog und mit einer htuser Datei...

Tja, vorab danke für Eure Antworten

Re: php htaccess ohne htuser auth sondern mit sql-db

am 17.09.2006 15:30:40 von Bernhard Jaud

Oliver Bleckmann schrieb:

> Wenn ich mich in php-Pages bewege, mit session-Contols arbeite und meine
> User in einer SQL-DB
> pflege, wie schütze ich die Inhalte eines Verzeichniss (Stichwort htaccess)
> z.B. Bilder die zwar
> per php eingebunden werden, nicht aber von unangemeldeten Nutzern "gebrowst"
> werden sollen...
Verstehe ich das richtig? Du willst die bilder nur per PHP ausliefern
und nichtangemeldeten garnix ausliefern? Dann wirf einfach eine
..htaccess mit deny from all rein. PHP ist das ja völlig egal weil
htaccess nur bei webzugriffen zuschlägt.


> Oder aders gesagt, ich hab' meine User in der DB, will also keine htuser
> datei mehr pflegen,
> wie bringe ich der htaccess Datei bei sich user und pw us der DB zu holen,
> bzw. - und hier
> überlege ich gerade - wie erlaube ich nochmal nur den php Interpreter das
> Verzeichnis zu nutzen
> per htaccess Datei. Ist das evtl. problematisch?
> Ich meine da war was. Ich selbst stehe ja mehr auf perl und das klassische
> unverschnörkelte login über Browserdialog und mit einer htuser Datei...
>
> Tja, vorab danke für Eure Antworten
htaccess kannst du nicht beibringen auf ne SQL DB zuzugreifen. aber mit
http-auth geht das :)

siehe http://php3.de/manual/de/features.http-auth.php

HTH

Bernhard

--
Some humans would do anything to see if it is possible to do it.
If you would place a lager switch in some cave somewhere,
saying "END-OF-THE-WORLD-SWITCH!! DO NOT TOUCH!!!",
the paint wouldnt have time to dry.



-Terry Pratchett

Re: php htaccess ohne htuser auth sondern mit sql-db

am 17.09.2006 15:55:25 von Frank Schenk

Oliver Bleckmann schrieb:
> Hi Leute,
>
> mein Bruder hat mir gerade eine schöne Frage gestellt, auf die ich gerade so
> keine
> Antwort wußte...
>
> Wenn ich mich in php-Pages bewege, mit session-Contols arbeite und meine
> User in einer SQL-DB
> pflege, wie schütze ich die Inhalte eines Verzeichniss (Stichwort htaccess)
> z.B. Bilder die zwar
> per php eingebunden werden, nicht aber von unangemeldeten Nutzern "gebrowst"
> werden sollen...
> Oder aders gesagt, ich hab' meine User in der DB, will also keine htuser
> datei mehr pflegen,
> wie bringe ich der htaccess Datei bei sich user und pw us der DB zu holen,
> bzw. - und hier
> überlege ich gerade - wie erlaube ich nochmal nur den php Interpreter das
> Verzeichnis zu nutzen
> per htaccess Datei. Ist das evtl. problematisch?
> Ich meine da war was. Ich selbst stehe ja mehr auf perl und das klassische
> unverschnörkelte login über Browserdialog und mit einer htuser Datei...

Stichworte:

Bilder nur von eigener Domain:
mod_rewrite RewriteCond HTTP_REFERER

Auth:
mod_auth_mysql

Wenn ihr einen gemieteten vhost Server habt macht euch bei eurem
Provider schlau, ob mod_rewrite und mod_auth_mysql verfügbar sind. Habt
ihr einen eigenen passt halt die Apache Config an.

Doku gibts unter http://httpd.apache.org

Ansonsten seid ihr hier falsch.


Wenn ihr die Bilder per php ausliefern wollt Verzeichnis schützen (siehe
Apache Doku). Dann halt User einloggen lassen und per header() und
fpassthru Bild ausliefern. Der Apache darf das Verzeichnis lesen, auch
wenns per htaccess geschützt ist. (Das gilt nur für den Zugriff über das
Web). Bedeutet halt etwas unnötige Last für den Webserver.


hth, Frank

Re: php htaccess ohne htuser auth sondern mit sql-db

am 17.09.2006 15:55:47 von Heiko Kuerschner

Oliver Bleckmann schrieb:

> Oder aders gesagt, ich hab' meine User in der DB, will also keine
> htuser datei mehr pflegen,
> wie bringe ich der htaccess Datei bei sich user und pw us der DB zu
> holen, bzw. - und hier
> überlege ich gerade - wie erlaube ich nochmal nur den php Interpreter
> das Verzeichnis zu nutzen
> per htaccess Datei. Ist das evtl. problematisch?

Tja, Wenn Du die User-Datn in einem LDAP-Verzeichnis pflegst, kannst Du
..htaccess mit LDAP verbinden.
Für SQL kenne ich keine Lösung (es sei denn, Du generierst Deine
..htuser/.htgroup aus dieser).

--
Kürsche
Wenns 'ner net gwittern tun tut ;)
Linux/*BSD-Anleitungen, Forum und Chat: www.newbie-net.de

Re: php htaccess ohne htuser auth sondern mit sql-db

am 17.09.2006 20:29:00 von Hadanite Marasek

> Wenn ich mich in php-Pages bewege, mit session-Contols arbeite und meine
> User in einer SQL-DB
> pflege, wie schütze ich die Inhalte eines Verzeichniss (Stichwort htaccess)
> z.B. Bilder die zwar
> per php eingebunden werden, nicht aber von unangemeldeten Nutzern "gebrowst"
> werden sollen...
> Oder aders gesagt, ich hab' meine User in der DB, will also keine htuser
> datei mehr pflegen,
> wie bringe ich der htaccess Datei bei sich user und pw us der DB zu holen,
> bzw. - und hier
> überlege ich gerade - wie erlaube ich nochmal nur den php Interpreter das
> Verzeichnis zu nutzen
> per htaccess Datei. Ist das evtl. problematisch?
> Ich meine da war was. Ich selbst stehe ja mehr auf perl und das klassische
> unverschnörkelte login über Browserdialog und mit einer htuser Datei...

Du bastelst einfach ein Skript, auf dass du per verweist,
mit dem Bild (id, name, was weiss ich) als Parameter. Im Skript lässt du
dann das bild mittels readfile() ausgeben. Da PHP direkt auf das
Dateisystem des Servers zugreift, kann die Datei in einem Verzeichnis
ausserhalb von $_SERVER["DOCUMENT_ROOT"] liegen oder in einem
Verzeichnis, dass per .htaccess geschützt ist.

du musst allerdings als erstes mittels
header("Content-Type: image/{jpeg, gif,png}"); den Mimetyp setzen.

Im Script kannst Du dann auch noch mal checken, ob der Benutzer
angemeldet ist oder nicht.


Noch was: wenn Du mehr auf login per Browserdialog stehst, kannst Du Dir
selbst eine HTTP-Authentifizierung bauen, in dem Du die entsprechenden
header selbst setzt. Ich empfehle zum Testen ethereal mitlaufen zu
lassen, um zu sehen was der Server und der Client schwätzen. Soweit ich
weiss, gibt es sowas aber auch schon fertig.
Heise hat diese Art der Anmeldung bis vor kurzem verwendet und bei
PHPadmin kann man es auch einstellen. Es hat aber den Nachteil, dass
Logouts meiner Erinnerung nach nicht klappen, der Nutzer bleibt solange
angemeldet, bis er den Browser schliesst.