W
wjharil
Delta
Programador
Hola a todos, bueno me doy el tiempito de hacer éste tutorial de cómo encriptar los enlaces salientes de nuestra web al estilo de Yaske o SeriesFLV. Sin más preámbulos, hagámoslo.
Hagamos un orden de cómo será nuestro script.
- Seleccionar los links que estén en un div cuyo identificador (id) sera "info".
- Teniendo los links, reemplazar el url original por uno en base 64 (esto lo hacemos con jquery).
- Ahora, al dar click en el link, que nos envie a un redireccionador que decodificará el link enviado por método POST.
- En el redireccionador, recibir la variable enviada y luego que haga lo suyo.
Bien, teniendo los puntos claros, pasemos a hacer el código.
Paso 1: index.php - Creamos un div que contenga los enlaces:
Paso 2: wjharil.js - Haciendo uso de Jquery y un plugin (jquery.base64) haremos que se reemplacen automáticamente :
Como podemos ver, lo que hace el javascript, es reemplazar las urls y pasarlas a base64.
Paso 4: go-to.php En nuestro go-to.php recibimos la variable enviada por método POST:
Como podemos ver, recibe el base 64 y luego lo decodifica generando la URL original y luego reenviandonos luego de 5 segundos. Ojo que si el usuario da Control + U (para ver el código fuente) se verá. Pero con un poco de ingenio, al momento de imprimir cada url (por php) codificar las url: base64_encode($url)
Pueden ver el demo aquí : Hazme Click !
Eso es todo, aquí el código completo para que puedan descargarlo: Hazme un sensual Click !
Espero que les sirva, dar gracias no cuesta nada n.n !
Hagamos un orden de cómo será nuestro script.
- Seleccionar los links que estén en un div cuyo identificador (id) sera "info".
- Teniendo los links, reemplazar el url original por uno en base 64 (esto lo hacemos con jquery).
- Ahora, al dar click en el link, que nos envie a un redireccionador que decodificará el link enviado por método POST.
- En el redireccionador, recibir la variable enviada y luego que haga lo suyo.
Bien, teniendo los puntos claros, pasemos a hacer el código.
Paso 1: index.php - Creamos un div que contenga los enlaces:
Insertar CODE, HTML o PHP:
<div id="info">
<a href="http://forobeta.com/">Enlace 1</a>
<a href="http://facebook.com/">Enlace 2</a>
<a href="http://twitter.com/">Enlace 3</a>
<a href="http://youtube.com/">Enlace 4</a>
<a href="http://localhost/pruebas">Enlace 5 (ésta en nuestro host, ésto no debe cambiar a base64)</a>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="jquery.base64.min.js"></script>
<script src="wjharil.js"></script>
Paso 2: wjharil.js - Haciendo uso de Jquery y un plugin (jquery.base64) haremos que se reemplacen automáticamente :
HTML:
(function(e) {
e.Postbitch = function(t, n, r) {
var i = e("<form>", {
action: t,
method: "post",
target: r,
enctype: "multipart/form-data"
});
this.each(n, function(t, n) {
e("<input>", {
type: "hidden",
name: t,
value: n
}).appendTo(i)
});
i.on("submit", function() {
e(this).remove()
}).appendTo("body").get(0).submit()
}
})(jQuery);
function nombre_dominio(url) {
var m = url.match(/^http:\/\/[^/]+/);
return m ? m[0] : null;
}
$(function() {
$("#info a").each(function() {
link_ = $(this).attr('href');
if(window.location.origin != nombre_dominio(link_)){
codificar_64 = $.base64.encode($(this).attr('href'));
$(this).attr('data-url',codificar_64);
$(this).attr('href','go-to.php');
$(this).on("click", function(e) {
e.preventDefault(); // cancelo todo
var t = $(this);
$.Postbitch(this.href, {
url: t.data("url")
}, this.target);
return false;
});
}
});
});
Como podemos ver, lo que hace el javascript, es reemplazar las urls y pasarlas a base64.
Paso 4: go-to.php En nuestro go-to.php recibimos la variable enviada por método POST:
PHP:
<?php
if($_POST['url']):
$url = $_POST['url'];
$url = base64_decode($url);
?>
<meta http-equiv="refresh" content="5;url=<?php echo $url;?>">
Espera 5 segundos, estás siendo redirigido.
<?php endif;?>
Como podemos ver, recibe el base 64 y luego lo decodifica generando la URL original y luego reenviandonos luego de 5 segundos. Ojo que si el usuario da Control + U (para ver el código fuente) se verá. Pero con un poco de ingenio, al momento de imprimir cada url (por php) codificar las url: base64_encode($url)
Pueden ver el demo aquí : Hazme Click !
Eso es todo, aquí el código completo para que puedan descargarlo: Hazme un sensual Click !
Espero que les sirva, dar gracias no cuesta nada n.n !
Última edición:


