zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Verzeichnis schützen mit php und htaccess

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.10.2009, 09:58
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.10.2009
Beiträge: 6
derM befindet sich auf einem aufstrebenden Ast
Standard Verzeichnis schützen mit php und htaccess

Hallo Zusammen,

und damit gleich zu meinem Anliegen.
Auf meiner Website gibt es einen Bereich (Gallerie),
der nur von eingeloggten Benutzen zu sehen sein wird.

Dies habe ich derzeit schon über ein LoginForm(php) usw.
hinbekommen und funktioniert auch soweit.

Der Gast meldet sich an und wird dann in die Gallerie weitergeleitet.

Die Gallerie (gallerie.php) greift auf den Ordner Bilder zu,
in welchem zum eine die Thumbs(für die Links) und die Bilder für die Lightbox liegen.

--------------------
Hier die Struktur:

"../privat"

->login.html (User loggt sich ein)
-->login.php (Daten werden geprüft und Weiterleitung erfolgt)

/privat/gallerie

-> gallerie.php (Seite enthält Imagelinks (kleine vorschau) die über Lightbox angezeigt werden)

Bilder in "..privat/gallerie/Bilder_privat"

--------------------
Dies funktioniert bisher auch gut.


Die Bilder im Verzeichnis "..privat/gallerie/Bilder_privat " sollen nun gegen einen Zugriff
ohne Login geschützt werden, der direkte Zugriff durch direkte Eingabe der URL soll verhindert werden.

Wenn ich diesen Ordner mit .htaccess versehe (hab ich getestet), wird der Zugriff von Aussen unterbunden.

Jedoch werden damit auch die Vorschaubilder der gallerie.php und die Ausgabe durch die Lightbox unterbunden.

Wie kann ich es realisieren, das die .htaccess den Zugriff von Aussen untersagt, jedoch der eingeloggte User
die Bilder in der Gallerie sehen kann (Vorschau mit Link) und die Lightbox diese ausgeben kann ???

Vielen Dank im Vorraus für Eure Hilfe.

der M.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.10.2009, 10:10
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

Schalte ein Script dazwischen, was die Bilder ausliest und verlinke im <img> und <a href> nur noch das Script, z.B. <a href="showpic.php?pfad=pfad/zum/bild"...> und das selbe dann auch beim <img src>.

Im Script müsstest Du dann den Typ des Bildes herausbekommen (getimagesize) und dann per readfile oder file_get_contents() das Bild selber einlesen, einen header() setzen und das Bild ausgeben.

Die Möglichkeit greift per Filesystem auf die Bilder zu, wobei dann ein Schutz per .htaccess nicht mehr greift. Sollte jemand allerdings im Browser den Pfad zum Bild eingeben, dann greift wiederum der Schutz per .htaccess.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 22.10.2009, 10:26
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.10.2009
Beiträge: 6
derM befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ich sollte vielleicht erwähnen, dass ich mit php am anfang stehe

Zitat:
Im Script müsstest Du dann den Typ des Bildes herausbekommen (getimagesize) und dann per readfile oder file_get_contents() das Bild selber einlesen, einen header() setzen und das Bild ausgeben.
daher meine Bitte um einen kurzen Hinweis zum Script, wie dieses aussehen könnte?
Müsste ich dann für jedes Bild in der Gallerie den Pfad im Script hinterlegen?

Wie gesagt, PHP Anfänger!

Danke,
der M.
Mit Zitat antworten
  #4 (permalink)  
Alt 22.10.2009, 12:27
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

Nein, Du musst keine Pfade hinterlegen.

Beispiel:

Im HTML dann so auf die Bilder zeigen:

<img src="showpic.php?bild=pfad/zu/deine/bild" ... />

bzw.

<a href="showpic.php?bild=pfad/zu/deinem/bild"....>

und im PHP dann in der Art (Pseudocode, ungetestet)
PHP-Code:
<?php
if(isset($_GET['bild']) && !empty($_GET['bild'])){
    if(
file_exists($_GET['bild'])){
        
$picdata getimagesize($_GET['bild']);
        
// Hab grad nur den Wert 2 im Kopf, die Anderen müsste ich auch erst nachschauen
        
switch($picdata[2]){
            case 
2:
                 
header('Content-Type: image/jpeg');
                 break;
        }
        
readfile($_GET['bild']);
    }
}
?>
Den Rest musst Du nun schon selber machen. Ich habe in Deinem ersten Post was von Lightbox gelesen, also hast Du Thumbnails und die großen Bilder? Wenn ja, dann kannst Du im href den Pfad ja auf das große Bild setzen und im img src den Pfad auf das Thumbnail.
Mit Zitat antworten
  #5 (permalink)  
Alt 22.10.2009, 13:13
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Sinnvoller weise sollte die showpic.php auch noch überprüfen, ob der User eingeloggt ist. Sonst könnte man die ja auch direkt aufrufen.

Außerdem würde ich nicht den vollständigen Pfad übergeben und auch sicher stellen, dass man nur auf Datein in deinem Bildverzeichnis zugreifen kann.
__________________
github | http://dnaber.de
Mit Zitat antworten
  #6 (permalink)  
Alt 22.10.2009, 13:33
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von David Beitrag anzeigen
Sinnvoller weise sollte die showpic.php auch noch überprüfen, ob der User eingeloggt ist. Sonst könnte man die ja auch direkt aufrufen.

Außerdem würde ich nicht den vollständigen Pfad übergeben und auch sicher stellen, dass man nur auf Datein in deinem Bildverzeichnis zugreifen kann.
Sicherlich, war ja auch nur Pseudocode. Ein wenig Eigeninitiative soll ja auch noch dabei sein. Ich habe das nur kurz und knapp hingeschrieben, ohne mir weitere Gedanken zu machen. Es geht ja auch nur ums Prinzip, wie ich es machen würde. Aber Deine Denkanstöße sind auch angebracht, vor allem der zweite Punkt wäre sehr sinnvoll.
Mit Zitat antworten
  #7 (permalink)  
Alt 22.10.2009, 14:56
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.10.2009
Beiträge: 6
derM befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

also ich krieg das nicht hin.

Dafür bin ich in PHP einfach noch nicht genug eingestiegen, eher noch weniger.

Aber irgendwie muss es doch ne einfache Lösung geben,
die ich mir Stück für Stück nachlesen kann.

Ziel soll nur sein, den Zugriff durch direkten Link zu unterbinden und die
angemeldeten Nutzer in die Gallerie zu lassen, welche die Bilder aus dem geschützten Verzeichnis bezieht.

- Hab es mit Authentifizierung mittels php probiert - bin ich zu unerfahren für
- mit dem Vorschlag hier - komm ich auch nicht weiter
- ...

Mal sehen ob das noch wird, irgendwie,irgendwann.

Aber dennoch Dank an Euch,

der M.
Mit Zitat antworten
  #8 (permalink)  
Alt 22.10.2009, 15:49
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.10.2009
Beiträge: 6
derM befindet sich auf einem aufstrebenden Ast
Standard

ich nochmal,

hab nocheinmal gesucht und gesucht.

Wäre es denn möglich, der .htaccess direkt mitzuteilen,
dass die gallerie.php, welche nur durch login.php erreichbar ist,
vollen Zugriff aus das Verzeichnis hat?

in etwa so:
Code:
AuthUserFile /meine url/htdocs/.htuser
AuthGroupFile /dev/null
AuthName Intern
AuthType Basic

<Files * >
deny from all
</Files>

<Files gallerie.php >
allow from all
</Files>
der M.
Mit Zitat antworten
  #9 (permalink)  
Alt 22.10.2009, 16:33
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Das ist auch möglich. Allerdings brauchst du dann keine login.php mehr.
Der Weg ist recht einfach, da du nichts Programieren brauchst, hat aber auch den Nachteil, dass die Benutzerverwaltung recht unbequem ist. Du musst jeden Benutzer samt verschlüsseltem Passwort in die .htuser eintragen.
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 22.10.2009, 16:53
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.10.2009
Beiträge: 6
derM befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

also könnte das so gehen, nur kann dann die .php, welche ja von login.php kommt ohne weitere Anmeldung die daten abfragen und anzeigen?

Hab nochmal die Variante von @uspri übernommen, weiß aber nicht ob diese so korrekt wäre, etwas geändert?

Code:
<?php

// meine safe.php: hier den geloggten usern erlauben, auf die daten in der gallerie.php zuzugreifen
if (!$korrektEingeloggt && !fileHasExtension($angeforderteDatei, array("jpg","png","gif","jpeg","bmp","tif","tiff","svg","ico"))
  header("location:gallerie.php");

else {
  ...
}

function fileHasExtension($filename, $extensions) {
  foreach ($extensions as $ext) {
    if (strtolower(substr($filename, strlen($filename)-(strlen($ext)+1), strlen($ext)+1)) == ".".strtolower($ext))
      return true;
  } 
  return false;
}
?>
dann die einbindung im link mit:

Code:
<img src="safe.php?file=bild.jpg" .../>
bzw:

Code:
<a href="safe.php?file=bild.jpg" .../>
anfordern.

Bin mir jedoch nicht sicher, das die Anmeldung, welche die .htaccess auswirft so umgangen wird?




der M.

Geändert von derM (22.10.2009 um 17:39 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Login, aber alles außer index.php ist trotzdem erreichbar, wie schützen? CrAzYLuKe Serveradministration und serverseitige Scripte 10 09.03.2009 22:43
php und htaccess |SONY| Serveradministration und serverseitige Scripte 1 19.07.2008 17:52
php source schützen paracelsus Serveradministration und serverseitige Scripte 76 17.04.2008 13:10
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 19:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:01 Uhr.