Tutorial

Tutorials von Thomas Frei-Herrmann

Tutorial Sichere Seite Komponente von NOF mit eigenen Skripten


zum Download meiner “Vorlage” für NOF 12

Zunächst ein ganz dickes Dankeschön für die viele Arbeit von Klaus2, der diese Skripte in Zusammenarbeit mit mir erstellt hat.

Der Nachbau ist grundsätzlich nur für fortgeschrittene NOF-Benutzer geeignet.

Dieses Skript baut Ihr natürlich auf eigene Verantwortung ein und es ist unerlässlich alles immer wieder zu testen, um herauszufinden ob die Bilder nun tatsächlich geschützt sind. Da hier nur überprüft wird, ob ein User eingeloggt ist oder nicht, dürft Ihr nur eine dieser Sicheren Seiten auf ein und der gleichen Domain verwenden, um die Bilder wirksam zu schützen.


Voraussetzung zur Nutzung dieser Skripte ist, dass Euer Server eine .htaccess Datei akzeptiert und auch ein “mod_rewrite

http://de.wikipedia.org/wiki/Rewrite-Engine     http://www.modrewrite.de/mod-rewrite/     http://forum.modrewrite.de/topic82.html

Zunächst fügt Ihr Eure Bilder ganz normal auf den “Sicheren Seiten” ein und publiziert anschließend lokal. Damit landen die Bilder dann im Ordner:

/assets/images

der lokalen Publizierung im Ordner “User Sites” oder Ihr bindet die Bilder direkt in der “Assets-Verwaltung” ein, so wie ich in meiner “Vorlage”.

So wie die Skripte jetzt erstellt wurden, könnt Ihr folgende Bild-Formate verwenden:

.jpg
.gif
.png



Nun wechselt Ihr in die “Publizieren-Ansicht” oben im Menü und erstellt Euch dort einen neuen Ordner, den Ihr

sicher

nennt. Jetzt verschiebt Ihr Eure Bilder aus dem Ordner

/assets/images

in den gerade neu erstellten Ordner:

sicher

eben so, wie ich es hier erkläre.


Bitte erstellt Euch auch noch ein Bild für den Hinweis “Kein Zugang”, hier mein Bild “keinzugang.png” und kopiert dies mittels
FTP-Programm in den Ordner

sicher

auf Euren Server. Dieses Bild wird angezeigt, falls jemand versuchen sollte auf die Fotos Eurer “Sicheren Seite” zuzugreifen, ohne eingeloggt zu sein. Wenn Ihr wollt, dürft Ihr natürlich auch mein Bild “keinzugang.png” weiter verwenden.


Bitte kopiert das Skript unten in Euren “Windows-Editor” und speichert es ab als Datei:

geschutzt.php

Bitte achtet bei allen Skripten darauf, dass diese mit dem “Windows-Editor” in der Codierung “ANSI” gespeichert werden. Kopiert diese Datei dann mit Eurem FTP-Programm in das Stammverzeichnis Eures Projektes. Ihr könnt Euch auch alle 3 Skripte hier downloaden.

<?php

   if ( session_id() == "" ) @session_start();
  
   error_reporting(0);
  
   $bild = explode(".", $_GET['id']);
   $bild = array_reverse($bild);
  
   $gueltiger_bild_name = '/^[a-zA-Z0-9]+$/';
  
   // .jpg Bilder
   if ($bild[0] == "jpg" &&
     preg_match($gueltiger_bild_name, $bild[1]) &&
     file_exists("./sicher/".$bild[1].".jpg") &&
     $_SESSION['userinsession'] <> "" )
   {
     header("Content-type: image/jpeg");
     readfile("./sicher/".$bild[1].".jpg");
     exit;
   }

   // .gif Bilder
   if ($bild[0] == "gif" &&
     preg_match($gueltiger_bild_name, $bild[1]) &&
     file_exists("./sicher/".$bild[1].".gif") &&
     $_SESSION['userinsession'] <> "" )
   {
     header("Content-type: image/gif");
     readfile("./sicher/".$bild[1].".gif");
     exit;
   }

   // .png Bilder
   if ($bild[0] == "png" &&
     preg_match($gueltiger_bild_name, $bild[1]) &&
     file_exists("./sicher/".$bild[1].".png") &&
     $_SESSION['userinsession'] <> "" )
   {
     header("Content-type: image/png");
     readfile("./sicher/".$bild[1].".png");
     exit;
   }

   // Unten bei ungültigen Dateiendungen
   // oder ungültiger Bildernamen
   // oder wenn Datei nicht vorhanden ist
   // oder der Benutzer nicht an der Sicheren Seite eingeloggt ist

   // Falls Ihr hier ein .jpg als Hinweis-Bild einsetzen wollt, ändert auch den Header in: header("Content-type: image/jpeg");

   header("Content-type: image/png");
   readfile("./sicher/keinzugang.png");
   exit;

?>


Nun kopiert Ihr das Skript unten in Euren “Windows-Editor” und speichert es als Datei:

.htaccess

ab.

Kopiert diese Datei ebenfalls in Euer Stammverzeichnis, sonst müssten hier die Pfade angepasst werden.

... nicht alle Provider unterstützen "Options". Sollte es nicht funktionieren, könnt Ihr die oberste Zeile dieser .htaccess auch entfernen.

Options -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_URI} sicher/(.*)$
RewriteRule sicher/(.*)$ /geschutzt.php?id=$1

Die .htaccess (oben) ist für das Stammverzeichnis (Root) gedacht. Wenn Ihr dieses Projekt z.B. in ein Unter-Verzeichnis, das Ihr

test

nennt, publiziert, dann muss in der .htaccess aus dem Stammverzeichnis dieser Ordner mit angegeben werden. Mit dem Verzeichnis “test” würde diese .htaccess dann so aussehen:

Options -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_URI} sicher/(.*)$
RewriteRule sicher/(.*)$ /test/geschutzt.php?id=$1


Nun müsst Ihr eine weitere .htaccess Datei erstellen (unten), die Ihr dann in Euer Verzeichnis

sicher

kopiert. Diese .htaccess hat folgenden Inhalt. Wie Ihr sehen könnt, werden hier Bilder als .jpg, .gif und .png anerkannt. Die Bildnamen selbst können kleine oder große Buchstaben von a-z (A-Z) beinhalten und/oder auch Zahlen von 0-9. Alles andere wird nicht anerkannt.

Options -Indexes -MultiViews

order deny,allow
deny from all

<Files ~ "^[a-zA-Z0-9]+\.jpg$">
  allow from all
</Files>

<Files ~ "^[a-zA-Z0-9]+\.gif$">
  allow from all
</Files>

<Files ~ "^[a-zA-Z0-9]+\.png$">
  allow from all
</Files>

Viel Erfolg!

nach oben

diese Seite weiter empfehlen



Counter Statistik