Der Martin: htaccess: Freigabe aus einem bestimmten Ordner

Beitrag lesen

Hallo,

Wenn ich jetzt als Admin auf den Ordner zugreifen will, muss ich wie erwartet ein Passwort eingeben...

und kommst dann auch an die Daten, die du haben willst? - Gut.

Das Problem ist, dass User, die auf einer Seite wie z.B. "intern/index.php" den Link zu einer Datei in "dataintern" anklicken ebenfalls das Passwort eingeben müssen...

Natürlich. Deswegen hatte ich ja schon gesagt, dass du ein Download-Script schreiben musst, das die Dateien aus diesem Verzeichnis rausklaubt, denn mit HTTP ist der Zugriff ja nun eingeschränkt.

Hier hätte ich eben gerne eine Ausnahme erstellt, dass alle php Seiten aus dem Ordner "intern" kein Passwort eingeben müssen.

Das ist unmöglich! Es ist ja *eben nicht* das PHP-Script, das diese Datei anfordert, sondern der Browser des Besuchers, nachdem eben dieser Besucher einen Link angeklickt hat.
Dein Server sieht einen HTTP-Request, der eine Ressource aus dem Verzeichnis anfordert, und reagiert korrekt, wenn er eine Authentifizierung verlangt, weil er die Kausalität dieses Requests nicht kennt, nicht kennen *kann*.

Hoffe so langsam sickert durch, wie ich das gemeint habe...

Schon lange. Aber mir scheint, du hast noch ein Verständnisproblem, was die serverinternen bzw. durch den Client veranlassten Vergänge betrifft: Es gibt in HTTP kein "von" [Cheatah]. Jeder Request darf und muss für sich allein betrachtet werden und hat keinen Zusammenhang zu Vorgängen, die sich vorher ereignet haben.

Und wenn dir jetzt jemand empfehlen will, den Referer auszuwerten: Das ist auch keine zuverlässige Maßnahme. Das mag unter Laborbedingungen gehen, wo du die Eigenheiten und Einstellungen aller Clients unter Kontrolle hast. "Draußen im bösen Internet" ist das zum Scheitern verurteilt, weil der Referer ebenso leicht zu fälschen ist (manchmal nicht einmal bewusst) wie der User Agent oder die Absenderadresse einer e-Mail.

So long,
 Martin

--
Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
Erfahrung bekommt man, indem man das nicht tut.