Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Cuál es el principio de protección de enlaces directos de imágenes?

¿Cuál es el principio de protección de enlaces directos de imágenes?

Categoría: Computadora/Red >> Programación >> Otros lenguajes de programación

Descripción del problema:

Algunas imágenes de sitios web no se pueden vincular externamente, como 163 , etc. . ¿Cuál es su principio? ¿Por qué otros sitios web no pueden usar URL para recuperar sus imágenes?

Análisis:

Principio anti-leeching:

Hay un especial protocolo en el protocolo estándar El campo de referencia de registro

En primer lugar, puede rastrear la última dirección entrante

En segundo lugar, para el archivo de recursos, puede rastrear la dirección de la página web que contiene él.

Por lo tanto, todos los métodos anti-hotlinking se basan en este campo Referer

Hay dos métodos comunes en Internet

Uno es usar el archivo apache FileMatch restricción, en d. conf (de hecho, también puede guardar la siguiente declaración como un archivo .htaccess) y colocarla en el directorio raíz de su sitio web (es decir, el directorio /), para que otros no puedan hacerlo. roba tus cosas~~

SetEnvIfNoCase Referer "^yahoo/" local_ref=1

Orden Permitir, Denegar

Permitir desde env=local_ref

Permitir desde 127.0 .0.1

Esto es muy conveniente para prohibir el acceso no permitido a URL para hacer referencia a varios archivos de recursos

Tenga en cuenta que cambie la primera oración "^yahoo/" a su sitio web, por ejemplo Mi sitio web es: linji

Esto es lo que debo escribir

"^linji/"

La segunda forma es usar rewrite , lo que requiere aumentar mode_rewrite de Apache. Admite restricciones de permisos del directorio de archivos .htaccess

Agregue un archivo .htaccess en el directorio raíz del host virtual para describir la redirección y dirigir todos los archivos de imagen remitidos desde direcciones no locales a imágenes de advertencia o páginas web de advertencia.

En primer lugar, asegúrese de que el motor de interpretación del servidor de su servidor o espacio sea Apache2 y que admita el archivo de configuración del cliente .htaccess.

Si tiene su propio servidor, por favor. verifíquelo primero. Realice las siguientes modificaciones en el archivo /conf/d.conf

Encontrado: #LoadModule rewrite_module module/mod_rewrite.so

Elimine el # delante de él. p>

Buscar y esperar Cambiar AllowOverride Ninguno a AllowOverride Todos

Reiniciar el servidor Apache2

El siguiente paso es crear un archivo .htaccess, el contenido del .htaccess el archivo es

RewriteEngine en

RewriteCond %{HTTP_REFERER} !^aaoo/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^]aaoo$ [NC]

RewriteCond %{HTTP_REFERER} !^aaoo/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^]aaoo$ [NC]

RewriteRule .*.(|jpeg|gif| png|bmp|rar|zip|exe)$ down.yoyo.ru/err [R,NC]

Las partes coloreadas deben cambiarse por las tuyas :

Rojo: Esto es para cambiar la dirección de la página de descarga que se le proporcionó, es decir, solo a través de esta dirección se pueden descargar los contenidos que usted proporciona.

Azul: La extensión del archivo a proteger (separada por |), lo que significa que solo se puede acceder a los archivos con estas extensiones a través de la dirección roja.

Verde: Si no se accede a los archivos azules con extensiones a través de la dirección roja, serán redirigidos a la dirección verde.

Una ventaja de este método es que se definen diferentes hosts virtuales con descripciones diferentes.

El siguiente paso es cómo utilizar el archivo .htaccess para evitar el hotlinking.

Primero, cree dos directorios en el espacio (por supuesto, el nombre del directorio depende de usted), uno es web y el otro está inactivo.

web se usa para almacenar páginas de descarga. (o descargar el programa), por supuesto, bajar es colocar el material que proporcionaste.

Cambia la parte roja del archivo .htaccess a tu nombre de dominio/web. Cambia la parte azul

por la extensión del archivo que deseas proteger. Cambia la parte verde por tu nombre de dominio/web. Guarde el archivo .htaccess después de realizar cambios y cárguelo en el directorio inferior.

También existe un tercer método:

Cuando estaba resolviendo el problema de prohibir los enlaces directos en el blog, encontré un problema, que también es un buen método.

El blog administra todos los recursos por sí mismo y utiliza reserver.php para mostrarlos dinámicamente. Esta entrada unificada facilita la adición de operaciones de permisos.

Al mismo tiempo, los dos métodos anteriores no se pueden utilizar porque Apache ya no accede directamente al archivo de recursos, pero PHP lo lee a través del archivo.

Por lo tanto, solo podemos hacer trucos en el código: antes de leer la salida del archivo de recursos, agregue el siguiente código de juicio

Referencia

$referer = $_SERVER [' HTTP_REFERER'];

$selfurl = $_SERVER['HTTP_HOST']

if(false == strpos($referer,$selfurl))

{

echo '¡Enlace ilegal!';

exit(1);

}

Esto es un poco vago, Solo mire la cita. Si la dirección contiene la dirección del host, pero el principio es este: determinar si el referente es la dirección de este sitio.

Al descargar, a menudo nos encontramos con el problema de no poder descargar sitios web con enlaces directos ni informar enlaces directos. La forma más sencilla de descargar este tipo de archivo es cambiar el referente.

Por ejemplo, en flashget, en la columna "Referencia" debajo de la URL, simplemente complete la dirección de descarga directamente.