Foros del Web » Administración de Sistemas » Apache »

Por favor ¿como puedo evitar el Hotlink directo?

Estas en el tema de Por favor ¿como puedo evitar el Hotlink directo? en el foro de Apache en Foros del Web. SOS: Por favor ¿como puedo evitar el Hotlink directo? Buen días estimados foristas, les agradecería muchísimo si me pueden ayudar con este problema que ha ...
  #1 (permalink)  
Antiguo 16/08/2009, 17:15
BoZ
 
Fecha de Ingreso: octubre-2007
Mensajes: 11
Antigüedad: 17 años
Puntos: 0
Exclamación Por favor ¿como puedo evitar el Hotlink directo?

SOS: Por favor ¿como puedo evitar el Hotlink directo?

Buen días estimados foristas, les agradecería muchísimo si me pueden ayudar con este problema que ha surgido, lo que pasa es que están linkeando archivos de mi servidor al punto que mi proveedor me ha suspendido la cuenta por hacer demasiada carga.

Actualmente yo tengo este código en .htaccess para evitar el hotlink:

================
Código PHP:
RewriteEngine on
RewriteCond 
%{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^httx://(xxx\.)?miweb.com(/)?.*$ [NC]
RewriteRule .*.(rar|exe|msi|zip)$ httx://xxx.miweb.com [R,L] 
nota: he puesto "x" en vez de "www" y http, para evitar en ati-spam.
================
Como saben, con este código si alguien linkea un archivo de mi web, mi web lo redirecciona automáticamente a mi pagina principal, sin embargo este código no evita que las personas puedan descargar archivos de mi web directamente, por ejemplo pegando el link directamente al navegador.

Me gustaría evitar el hotlink como lo hace por ejemplo la web xpcodecpack.com, por ejemplo cuando uno trata de descargar directamente el archivo “XP-Codec-Pack-2.4.9.exe” la pagina automáticamente lo redirecciona a una pagina de "error", así la única forma de descargar el archivo es a través de la pagina de descargas.

Pueden probar pegando el siguiente link en su navegador y verán a lo que me refiero:

Código PHP:
xpcodecpack.com/dl/XP-Codec-Pack-2.4.9.exe 

Ese es el tipo de código que necesito para poder solucionar mi problema, por favor alguien sabe si es un script o solo se modifica el .htaccess?.

Muchas gracias por su ayuda de antemano.
  #2 (permalink)  
Antiguo 17/08/2009, 12:25
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Por favor ¿como puedo evitar el Hotlink directo?

Prueba eliminando la segunda línea de tu .htaccess, o sea ésta:

RewriteCond %{HTTP_REFERER} !^$
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #3 (permalink)  
Antiguo 18/08/2009, 14:41
BoZ
 
Fecha de Ingreso: octubre-2007
Mensajes: 11
Antigüedad: 17 años
Puntos: 0
Respuesta: Por favor ¿como puedo evitar el Hotlink directo?

Bueno por ahora solo he encontrado este script con cookie , pero no es exactamente lo que ando buscando (por .htaccess), les dejo el código quizás a alguien le sirva, lo encontré en webtaller.com.

Código PHP:
<?php
// Esto tiene que estar al principio del
// todo del documento antes de enviar nada
// al navegador (ni siquiera un espacio)
// de lo contrario tendremos un error
setcookie 'descarga' '1' );
?>

Luego situaremos el archivo a descargar en una carpeta secreta a la que daremos un nombre aleatório para que no sea fácil de encontrar, por ejemplo 23hi938fdfgh39, y crearemos el siguiente archivo:

descargar.php

<?php
// Indicamos el nombre del directório
define 'dir' '23hi938fdfgh39' );
// Comprovamos que exista la cookie
if( $_COOKIE 'descarga' ] == '1' ){
// Si existe la cookie intentamos
   // leer el archivo
$archivo $_GET 'archivo' ];
   if( 
file_exists dir '/' $archivo )){
// Si existe el archivo lo enviamos
header 'Content-Type: application/octet-stream' );
header 'Content-Disposition: attachment; filename=' $archivo );
     echo 
file_get_contents dir '/' $archivo );
   } else {
// Sino existe el archivo enviamos
     // un error 404
header 'HTTP/1.0 404 Not Found' );
     echo 
'<h1>ERROR</h1><br />No se h' ,
'a encontrado el archivo sol' ,
'icitado' ;
   }
} else {
// Sino hay cookie enviamos un error
   // 401
header 'HTTP/1.0 401 Unauthorized' );
   echo 
'<h1>ERROR</h1><br />No puedes' ,
'acceder a este archivo desde ' ,
'un servidor externo' ;
}
?>
saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:21.