php-Dateiaufruf über referer kontrollieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php-Dateiaufruf über referer kontrollieren?

    Hallo!
    Ich generiere über
    http://www.domain.de/bild.php?weite=100&hoehe=150
    ein JPG.
    Nun möchte ich (am besten über die htaccess) den Zugriff nur mit der eigenen Domain als Referer zulassen, damit sich nieman die Bilder alleine anzeigen kann.

    Ich hab mich schon schlau gemacht und so Sahcne wie

    Code:
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^[url]http://[/url](www\.)?trafficklau\.de(/.*)?$ [NC]
    RewriteRule \.(gif|jpg|GIF|JPG)$ [url]http://www.trafficklau.de/images/ersatz.gif[/url] [R,L]
    gefunden.

    Ich möchte aber nicht alle Dateien mit der PHP-Endung angeben!
    Wie kann ich eine Konkrete PHP-Datei definieren?
    Und dann ggf. auf eine andere URL weiterleiten, wenn keine Berechtigung aufgrund des fremden Referers besteht?

    Vielen Dank!

    Jogi
    Zuletzt geändert von JogiWebster; 20.04.2005, 12:28.

  • #2
    brich ma den code um:
    http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      Re: php-Dateiaufruf über referer kontrollieren?

      Code:
      RewriteEngine on
      
      # Referer ist leer oder
      RewriteCond %{HTTP_REFERER} ^$ [OR]
      
      # Referer enthält nicht deinedomain.de/
      RewriteCond %{HTTP_REFERER} !.*deinedomain\.de/ [NC]
      
      # und angeforderte Datei ist /pfad/zur/datei.php mit Querystring
      RewriteCond %{REQUEST_URI} ^/pfad/zur/datei\.php\?.*$ [NC]
      
      # und es ist kein interner Subrequest (NS)
      # dann führe keine weiteren Regeln aus (L)
      # und sende Forbidden 403 (F)
      RewriteRule .* - [NS,L,F]
      Leere Referer blocken heißt auch, dass man eine Webseite mit <img src="datei.php?width=100&height=100"> bei direktem Aufruf - also auch beim öffnen via Bookmark - nur ohne Bild sieht.
      Der Request wird nur geblockt, wenn er einen Querystring enthält. Willst du die Datei generell sperren, entferne das "\?".
      Obige RewriteRule sendet 403-Fehler, kein Ersatzbild. Wie man das macht, hast du ja halbwegs selbst gepostet, scheinst es also zu wissen.

      Alles ungetestet, Logging hilft beim Debuggen.

      EDIT:
      PHP-Tags fressen Backslashes und verhindern nicht URL -> Link. Nimm also CODE, dann ist auch der Scrollbalken weg.
      Zuletzt geändert von onemorenerd; 20.04.2005, 03:14.

      Kommentar


      • #4
        Danke für die Antwort, aber ich habe es doch ohne htaccess realisiert.
        Ich habe einfach per PHP den Referer mit pre_match nach einem bestimmten string durchsucht, dadurch wird der gleiche Effekt erziel.

        jogi

        Kommentar

        Lädt...
        X