
vellenger
Programador
No recomendado
Verificación en dos pasos activada
Verificado por Whatsapp
Este es un anonimizador de enlaces que funciona en cualquier script, me lo pidieron varios asi que aqui les dejo como lo he ralizado y posteriormente la descarga para el que lo quiera utilizar.
Este se ha creado para la plataforma de wordpress pero funcionaria en cualquier script .
Este contendra las funciones que se utilizaran para encriptar y desencriptar los enlaces.
Creamos class.php
En primera instancia vamos a crear el archivo que recibira los enlaces por un get, recordando que el enlace en su primera etapa pasara a estar encriptado en Base64.
Creamos l.php
Lo que vemos primeramente que obtenemos por el metodo GET el enlace encriptado en Base64.
En segundo obtenemos la url de la web donde se esta ejecutando el script, en si esto no es importante, se podria ingresar manualmente el nombre de su web que lo asigne a lavariable $url.
En tercer lugar vemos que se usa bitly, y diran ¿para que?, y simplemente es para evitar el problemita que dejan las url encriptadas a base64 y posteriormente desencriptadas, esta tienden a dejar espacios vacios el cual al momento de abrirlos tira errores.
Se utiliza una class de bitly que esta cargada en el archivo class.php y aqui lo que hacemos es llamar a la clase, y vamos a necesitar el nombre de usuario y el API de bitly. ( Pueden cambiar por el suyo )
En cuarto lugar comparamos las url entrantes, desencriptando las url por el metodo GET comprobamos que las url no sean de mega o de shorte,
y esto se debe a que esos servidores no dejan hacer uso del code que tenemos, pero en los demas funciona bien.
Por eso se compara si los enlaces salientes pertenecen a alguno de esos los jala encriptados, caso contrario los acorta solo a bitly.
Pasando estos paso, pasamos a encriptar los enlaces en AES 128 el cual vamos a cifrar los enlaces aun mas para darle mas seguridad, el cual para decifrarlo no es tan facil como el de base64, este utiliza una funcion que estara cargada en class.php tanto para encriptar como para desencriptar. Este metodo necesita la url que se quiere utilizar y una clave, el cual en ambas deben ser iguales para que se puedan utilizar.
Ya tomando la url , y encriptadas en AES pasamos a redireccionar al codigo generado, si se fijan el enlace pasa a tomar un estilo del como utiliza mega.co.nz.
Aqui es donde empieza el tema del anonimizador.
Aqui lo que notaremos es que los enlaces van a estar mas protegidos, la razon simplemente que se estaran mostrando en el navegador del usuario y no en el servidor, esto impedira que los puedan rastrear a los enlaces.
Otra caracteristica importante es que el enlace tiene que salir de la web donde esta el enlace, no puede ser utilizado directamente, caso contrario nunca se vera el enlace y tomara otra vista ante el usuario.
Creamos redir.php
Este archivo tendra dos funciones, en primera simplemente sera recibir por url a traves del metodo GET el valor obtenido previamente desencriptado en base64 y redireccionarlo. Esto se utilizara en el caso que los enlaces sean de mega o shorte.
En la segunda parte vemos que el metodo GET toma otro valor similar, solo que este jalara los nelaces finales.
Este desencripta por medio de la funcion cargada en class.php con la clave indicada que se utilizo la misma al encriptarla y posteriormente recortamos el enlace generadro ya que se generan espacios vacios, esto lo solucionamos utilizando la funcion substr de php.
Esto tomara dos opciones del GET si no jala algunas de ellas los enviara a una pagina default ( google )
En el archivo index.php
Este se aplica mas a una estructura html y javascript el cual se ejecutan en el navegador del usuario.
Se utiliza dos herramientas de php:
Con esto lo que obtenemos es la url de donde salio el enlace y donde esta actualmente, con esto comparamos y por medio de una condicion if indicamos al script que si el enlace saliente llego de la web donde esta jalando actualmente se muetre los enlaces, caso contrario pasara a salir sin dejar evidencia de lo que se estaba manteniendo, en este caso deje una publi el cual pueden cambiarla a gusto.
Este archivo es un poco extenso de explicar ya que contiene codigos con estilos y utilidades de javascript que repasaremos en partes.
Para cambiar el temporizador, el cual redireccionara al finlizar el tiempo veremos que se da con un numero ( 15 ) el cual son los segundos que se deberan esperar antes que sea enviado automaticamnte al enlace capturado.
El archivo anonymize.js es el que actua sobre los enlaces dentro de su web, y simplemente se aplica en el footer de su web antes del cierre del </body>
agregamos:
Donde se ve que dice tuweb.com se debe de cambiar por la url de su web.
Los archivos ya estan probados y funcional, los cambios que se pueden dar es para el uso de su cuenta de bitly, y para el uso de AES con la clave, ademas de cambiar la publicidad por defecto que se mostrara si no sale de su web.
Solo se debera subir los archivos a su carpeta Raiz y agregar a su footer el codigo que indicamos arriba:
Aqui les quiero mostrar una demo de como funciona, veremos un ejemplo de su uso:
(Descarga los archivos Actualizada)
https://mega.co.nz/#!1AcAjJDT!ccMYeng7BQbbRDUZmNeVdMlGpkjHIU4SOi0m3KwiMcs
Hay servidores que no dejan directamente usar el anonimizador, por eso en e archivo l.php se vera como agregar esos servidores.
En la demo veran una imagen con un enlace externo a la web, si entran desde a web se vera el script funcionando, si jalan la url manualmente veran que ya no les saldra, de esta manera se oculta mas los enaces salientes.
El script se puede personalizar a gusto, solo pido que como es una version gratuita respeten parte del codigo que deje.
He creado muchas versiones de estos estilos, si alguien esta interesado por versiones mas completas me contacta por mp.
Saludos..
:encouragement:
Este se ha creado para la plataforma de wordpress pero funcionaria en cualquier script .
Este contendra las funciones que se utilizaran para encriptar y desencriptar los enlaces.
Creamos class.php
HTML:
<?php
class Bitly {
var $path;
var $user;
var $key;
function Bitly ($_user, $_key) {
$this->path = "http://api.bit.ly/v3/";
$this->user = $_user;
$this->key = $_key;
}
function shorten($url) {
$temp = $this->path."shorten?login=".$this->user."&apiKey=".$this->key."&uri=".$url."&format=txt";
$data = file_get_contents($temp);
return $data;
}
function expand($url) {
$temp = $this->path."expand?login=".$this->user."&apiKey=".$this->key."&shortUrl=".$url."&format=txt";
$data = file_get_contents($temp);
return $data;
}
}
function encriptar_AES($string, $key){
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM );
mcrypt_generic_init($td, $key, $iv);
$encrypted_data_bin = mcrypt_generic($td, $string);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$encrypted_data_hex = bin2hex($iv).bin2hex($encrypted_data_bin);
return $encrypted_data_hex;
}
function desencriptar_AES($encrypted_data_hex, $key){
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$iv_size_hex = mcrypt_enc_get_iv_size($td)*2;
$iv = pack("H*", substr($encrypted_data_hex, 0, $iv_size_hex));
$encrypted_data_bin = pack("H*", substr($encrypted_data_hex, $iv_size_hex));
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $encrypted_data_bin);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $decrypted;
}
?>
En primera instancia vamos a crear el archivo que recibira los enlaces por un get, recordando que el enlace en su primera etapa pasara a estar encriptado en Base64.
Creamos l.php
HTML:
<?php
$enlace = $_GET['v'];
$url="http://".$_SERVER['HTTP_HOST'];
include 'class.php';
$bitly = new Bitly("vellenger", "R_03e6735b646986241e6836053fa321d4"); // USER Y APY DE BIT.LY
if(strstr(base64_decode($enlace),"mega.co.nz")==true || strstr(base64_decode($enlace),"sh.st")==true){
$links = $url."/link/redir.php?v=".$_GET['v'];
}else{
$links = base64_decode($_GET['v']);
}
$down = $bitly->shorten($links);
$clave = "vellenger";
$encriptado = encriptar_AES($down, $clave);
header("Location: /link/#!".$encriptado);
?>
Lo que vemos primeramente que obtenemos por el metodo GET el enlace encriptado en Base64.
En segundo obtenemos la url de la web donde se esta ejecutando el script, en si esto no es importante, se podria ingresar manualmente el nombre de su web que lo asigne a lavariable $url.
En tercer lugar vemos que se usa bitly, y diran ¿para que?, y simplemente es para evitar el problemita que dejan las url encriptadas a base64 y posteriormente desencriptadas, esta tienden a dejar espacios vacios el cual al momento de abrirlos tira errores.
Se utiliza una class de bitly que esta cargada en el archivo class.php y aqui lo que hacemos es llamar a la clase, y vamos a necesitar el nombre de usuario y el API de bitly. ( Pueden cambiar por el suyo )
En cuarto lugar comparamos las url entrantes, desencriptando las url por el metodo GET comprobamos que las url no sean de mega o de shorte,
y esto se debe a que esos servidores no dejan hacer uso del code que tenemos, pero en los demas funciona bien.
Por eso se compara si los enlaces salientes pertenecen a alguno de esos los jala encriptados, caso contrario los acorta solo a bitly.
Pasando estos paso, pasamos a encriptar los enlaces en AES 128 el cual vamos a cifrar los enlaces aun mas para darle mas seguridad, el cual para decifrarlo no es tan facil como el de base64, este utiliza una funcion que estara cargada en class.php tanto para encriptar como para desencriptar. Este metodo necesita la url que se quiere utilizar y una clave, el cual en ambas deben ser iguales para que se puedan utilizar.
Ya tomando la url , y encriptadas en AES pasamos a redireccionar al codigo generado, si se fijan el enlace pasa a tomar un estilo del como utiliza mega.co.nz.
Aqui es donde empieza el tema del anonimizador.
Aqui lo que notaremos es que los enlaces van a estar mas protegidos, la razon simplemente que se estaran mostrando en el navegador del usuario y no en el servidor, esto impedira que los puedan rastrear a los enlaces.
Otra caracteristica importante es que el enlace tiene que salir de la web donde esta el enlace, no puede ser utilizado directamente, caso contrario nunca se vera el enlace y tomara otra vista ante el usuario.
Creamos redir.php
HTML:
<?php
include 'class.php';
if(isset($_GET['v'])){
$url = $_GET['v'];
$link = base64_decode($url);
header("Location: ".$link);
}else{
if(isset($_GET['u'])){
$page = $_GET['u'];
$clave = "vellenger";
$desencriptado = substr(desencriptar_AES($page, $clave),0,21);
header("Location: ".$desencriptado);
}else{
header("Location: http://www.google.com");
}
}
?>
Este archivo tendra dos funciones, en primera simplemente sera recibir por url a traves del metodo GET el valor obtenido previamente desencriptado en base64 y redireccionarlo. Esto se utilizara en el caso que los enlaces sean de mega o shorte.
En la segunda parte vemos que el metodo GET toma otro valor similar, solo que este jalara los nelaces finales.
Este desencripta por medio de la funcion cargada en class.php con la clave indicada que se utilizo la misma al encriptarla y posteriormente recortamos el enlace generadro ya que se generan espacios vacios, esto lo solucionamos utilizando la funcion substr de php.
Esto tomara dos opciones del GET si no jala algunas de ellas los enviara a una pagina default ( google )
En el archivo index.php
Este se aplica mas a una estructura html y javascript el cual se ejecutan en el navegador del usuario.
Se utiliza dos herramientas de php:
HTML:
$dir=$_SERVER['HTTP_REFERER'];
$url="http://".$_SERVER['HTTP_HOST'];
Con esto lo que obtenemos es la url de donde salio el enlace y donde esta actualmente, con esto comparamos y por medio de una condicion if indicamos al script que si el enlace saliente llego de la web donde esta jalando actualmente se muetre los enlaces, caso contrario pasara a salir sin dejar evidencia de lo que se estaba manteniendo, en este caso deje una publi el cual pueden cambiarla a gusto.
Este archivo es un poco extenso de explicar ya que contiene codigos con estilos y utilidades de javascript que repasaremos en partes.
HTML:
var countdownfrom=15 //TIEMPO
Para cambiar el temporizador, el cual redireccionara al finlizar el tiempo veremos que se da con un numero ( 15 ) el cual son los segundos que se deberan esperar antes que sea enviado automaticamnte al enlace capturado.
El archivo anonymize.js es el que actua sobre los enlaces dentro de su web, y simplemente se aplica en el footer de su web antes del cierre del </body>
agregamos:
HTML:
<script src="/link/anonymize.js" type="text/javascript"></script>
<script type="text/javascript"><!--
protected_links = "http://www.tuweb.com";
auto_anonymize();
//--></script>
Donde se ve que dice tuweb.com se debe de cambiar por la url de su web.
Los archivos ya estan probados y funcional, los cambios que se pueden dar es para el uso de su cuenta de bitly, y para el uso de AES con la clave, ademas de cambiar la publicidad por defecto que se mostrara si no sale de su web.
Solo se debera subir los archivos a su carpeta Raiz y agregar a su footer el codigo que indicamos arriba:
Aqui les quiero mostrar una demo de como funciona, veremos un ejemplo de su uso:
(Descarga los archivos Actualizada)
https://mega.co.nz/#!1AcAjJDT!ccMYeng7BQbbRDUZmNeVdMlGpkjHIU4SOi0m3KwiMcs
Hay servidores que no dejan directamente usar el anonimizador, por eso en e archivo l.php se vera como agregar esos servidores.
En la demo veran una imagen con un enlace externo a la web, si entran desde a web se vera el script funcionando, si jalan la url manualmente veran que ya no les saldra, de esta manera se oculta mas los enaces salientes.
El script se puede personalizar a gusto, solo pido que como es una version gratuita respeten parte del codigo que deje.
He creado muchas versiones de estos estilos, si alguien esta interesado por versiones mas completas me contacta por mp.
Saludos..
:encouragement:
Última edición: