2016-06-24 7 views
0

Ich betreibe derzeit eine PHP-Website, und ich frage mich, ob es eine Möglichkeit gibt, den Zugriff auf ein Bild zu verweigern, wenn das Verzeichnis in der Browserleiste eingegeben wurde immer noch in der Lage sein, das Bild in meiner Seite mit dem <img src=""> Tag zu verwenden. Ich speichere dieses Bild in einem Verzeichnis namens "images" welches auf der gleichen Ebene wie meine Hauptseite "home.php" ist. Ich bin vertraut mit der .htaccess-Datei und dem deny from all Befehl darin, aber wie gesagt, es wird nicht die "verbotenen" Dateien auf den anderen Seiten anzeigen. Ich hoffe, dass mir jemand helfen kann. Vielen Dank!verweigern Zugang PHP-Seite, aber immer noch es möglich sein, enthalten sein

+0

Hier ist ein Apache-Lösung: http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access – brandonscript

+0

Und hier ist eine Js-Lösung http://stackoverflow.com/questions/13658988/prevent-direct-access-to-images-using-the-browser-url – brandonscript

Antwort

1

Vielleicht können Sie versuchen, diese:

<Files "./your_directory/yourfile.png"> 
Order Allow,Deny 
Deny from all 
</Files> 
0

Grundsätzlich glaube ich, dass die Antwort „Nein“ wäre, weil in beiden Fällen den Browser des Benutzers ist die Partei den Antrag zu machen.   Apache kann möglicherweise nicht zwischen zwei "Gründen" unterscheiden oder unterscheiden können, warum der Browser eine solche Anfrage stellt.

Auf der anderen Seite könnte programmatic Code innerhalb Ihrer Host-Seite möglicherweise könnte. Entweder direkt oder unter Verwendung von mod_rewrite Tricks können Sie die eingehende Anfrage an ein serverseitiges Skript leiten, das die Gesamtheit der HTTP-Anfrage untersuchen und feststellen kann, welche Art von Antwort es erzeugen soll:   image-content oder 404.   In diesem Szenario akzeptiert Apache die Anfrage ... nicht Deny es ... aber anstatt das Bild direkt selbst zu dienen, es Hands-Off zu einem Skript, das diese Entscheidung trifft. (Das Skript kann immer noch die Daten aus einer Datei schlucken, wahrscheinlich aus einem Verzeichnis, das Apache nicht direkt bedient, also kann es "einigermaßen schnell" sein.)

  Sie können Direktiven verwenden, um die oder <Location> Ebene, um erzwingen "diese Anfrage an solche-und-so Skript" Verhalten, so dass, wenn der Browser des Benutzers "so-und-so Bild anfordert," Apache führt diese Handler-Skript statt, Übergeben einer URL, die den Namen der angeforderten Datei enthält. Der Benutzer wird nicht in der Lage sein zu wissen, was tatsächlich passiert ist.)

0

Sie können dies viele Möglichkeiten erreichen, aber Internet-Jargon das heißt "Hotlinking". Sie können dieses Tool http://www.htaccesstools.com/hotlink-protection/ verwenden, um Ihre eigene .htaccess-Datei zu erstellen.

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]