Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Vellenger

Anonimizador de Enlaces Base64

Recommended Posts

Anonimizador de Enlaces Base64

 

Aqui les dejo este modulo el cual les puede ser de utilidad

para proteger sus enlaces dentro de su/s web,

lo que hace este complemento es encriptar los links

en un algoritmo de cifrado en Base64

el cual aculta el codigo fuente de los enlaces,

y asi cuidar un poco lo enlaces para que no los detecten los robot

de los buscadores, y tambien para cuidar el robo de enlaces..

 

 

En bbcode.inc.php buscamos:

 

 

 

public $restriction = Array("url", "code", "quote", "quotePHPost", "font", "size", "color", "img", "b", "i", "u", "align", "spoiler", "swf", "goear", "hr", "li");

 

 

  Despues de

"li"

 

  agregamos :

 

,"crypt"

 

 

  Buscamos:

 

 

 

array("li", "/(?i)\[\*\]/i","• ")

 

 

 

  Y lo cambiamos por:

 

 

 

 

array("li", "/(?i)\[\*\]/i","• "),
            array("crypt", "/(?i)(\[crypt\])(http|https|ftp|irc|ed2k|gopher|telnet)(\:\/\/)([^\<\>[:space:]]+?)(\[\/crypt\])/i", "<a href=\"\\2\\3\\4\" target=\"_blank\"><center><div  class=\"boton\">Descarga Aqu&iacute;</div></center></a>")

            

            

            

            

            

            

            

    En c.core.php buscamos:

   

// RESTRICTIONS
                $parser->restriction = array('url', 'code', 'quote', 'quotePHPost', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 'align', 'spoiler', 'swf', 'goear', 'hr', 'li');

    En esa linea despues de

, 'li'

 

    Agregamos:

  

 , 'crypt'  

 

    

    

    

    En acciones.js buscamos:

    

    

   

lang['Upload'] = "Subir Im&aacute;genes";

    

    

    Y agregamos abajo:

    

    

       

lang['Insertar Enlace'] = "Insertar Enlace";
    lang['Ingrese el Enlace que desea encriptar'] = "Ingrese el Enlace que desea encriptar";
    lang['ingrese la url de url'] = "Ingrese el Enlace que desea encriptar";

    

    

    

    Buscamos:

    

    

   

{name:lang['Upload'], beforeInsert:function(h){ markit_upload(h); }},

    

    

    

    Y agregamos abajo:

    

    

   

{name:lang['Insertar Enlace'], beforeInsert:function(h){ markit_crypt(h); }},

    

    

    

    Al final de todo agregamos:

    

    

    

/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/

var Base64 = {

    // private property
    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

    // public method for encoding
    encode : function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;

        input = Base64._utf8_encode(input);

        while (i < input.length) {

            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);

            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;

            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }

            output = output +
            this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
            this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

        }

        return output;
    },

    // public method for decoding
    decode : function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;

        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

        while (i < input.length) {

            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));

            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;

            output = output + String.fromCharCode(chr1);

            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }

        }

        output = Base64._utf8_decode(output);

        return output;

    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}

function markit_crypt(h){
    if(h.selection==''){
        var msg = prompt(lang['Ingrese el Enlace que desea encriptar'], 'http://');
        var msg = global_data.url +'/vell.php/?page=' + Base64.encode(msg);
        if(msg != null){
            h.replaceWith = '[crypt]' + msg + '[/crypt]';
            h.openWith = '';
            h.closeWith = '';
        }else{
            h.replaceWith = '';
            h.openWith = '';
            h.closeWith = '';
        }
    }else if(h.selection.substring(0,7)=='http://' || h.selection.substring(0,8)=='https://' || h.selection.substring(0,6)=='ftp://'){
        h.replaceWith = '';
        h.openWith='[crypt]';
        h.closeWith='[/crypt]';
    }
}

    

    

    

    

    

    

    Al final de extras.css agregamos:

    

    

    

      

 .boton {
    text-decoration: none;
     color: #fff;
     font-weight: bold;
     padding: 12px 20px;
     font-size: 18px;
     border-radius: 10px;
     background-color: #00CCFF;
     box-shadow: 0 5px 5px #313131, 0 9px 0 #393939, 0px 9px 10px rgba(0,0,0,0.4), inset 0px 2px 9px rgba(255,255,255,0.2), inset 0 -2px 9px rgba(0,0,0,0.2);
     position: relative;
     border-bottom: 1px solid rgba(255,255,255,0.2);
     display: inline-block;
     font-family: Arial, Helvetica, sans;
     text-shadow: 0px -1px 0px rgba(0,0,0,0.2);
     margin-bottom:5px;
    }

    .boton:hover {
     box-shadow: 0 5px 5px #313131, 0 9px 0 #393939, 0px 9px 10px rgba(0,0,0,0.4), inset 0px 2px 15px rgba(255,255,255,0.4), inset 0 -2px 9px rgba(0,0,0,0.2);
     color: #fff !important;
    }

    .boton:active {
     top: 7px;
     box-shadow: 0 2px 0 #393939, 0px 4px 4px rgba(0,0,0,0.4), inset 0px 2px 5px rgba(0,0,0,0.2);
     color: #fff !important;
    }

    

    

    

    

    

    

    En estilo.css buscamos:

    

    

       

.markItUp .markItUpButton17 a {
        background:transparent url('images/bbcodes.png') no-repeat scroll left top;
        background-position: left -256px;
        height: 10px;
    }

    

    

    

    Y agregamos abajo:

    

    

    

       

.markItUp .markItUpButton18 a {
        background:transparent url('images/crypt.png') no-repeat scroll left top;
        height: 10px;
        height: 10px;
    }
    .markItUp .markItUpButton18 a:hover {
        background-position: -18px  0px;
        }

        .markItUp .markItUpButton18 a:active {
        background-position: -35px  0px;
        }

        

        

        

        

        

        

  Subimos los archivo a sus carpetas.

 

 

DEMO en la Descarga

 

Archivos

 

 

  Subimos los archivos a la carpeta raiz:

    vell.php

    vellenger.php    

    

    

    Y la imagen a la carpeta /images/

 

 

 

 

 

bpAEJSD.jpg

Ry1wrKQ.jpg

9UuSwND.jpg

E9aTvt4.jpg

 

 

 

 

 

 

 

Esta vercion simplemente es para encriptar los enlaces,

Uds, pueden editar su estructura,

pero los que quieran mostra publicidad le agregue un rotador de publicidad:

 

 

En el archivo vell.php veran:

$txt[1] = ' Tu Publicidad Aqui ';

$txt[2] = ' Tu Publicidad Aqui ';

$txt[3] = ' Tu Publicidad Aqui';

Para cambiar el tiempo de la redireccion en el mismo archivo

vell.php buscar:

var countdownfrom=20

Y lo cambian por el valor que deceen que se demore la redirreccion.

 

 

Agregan la publicidad de Uds.

el cual cambiara cada ves que el usuario refresque o se abra otro enlace,.

En si esta vercion la publicidad no tiene funcion

 

Pero podran darle sus ideas.

Esta se realizo sobre el script nuevo,

 

No utiliza la herramiente de

[url*][/url*]

 

 

Espero que les sea de Agrado..

 

Hasta la Proxima..

Edited by Vellenger
  • Like 10

Share this post


Link to post
Share on other sites

Muy bueno, esto permite q usuarios anonimos no vean link? asta estar registrado

 

No  es si, es igual para todos,

es mas para que los enlaces no sean registrados por los buscadores,

asi como cuando su seo registra sus tags, con esto podran hacer que los enlaces

no aparezcan, y no sean facil de rastrear asi duraran mas tiempo..

  • Like 1

Share this post


Link to post
Share on other sites

Hay algo parecido que cada enlace que se publique en lso post se convierta en adfly como sucede en este foro?

 

Se dejaron varios modulos para hacer eso..

los enlaces en si no son encriptados con adfly y se pueden quitar sin problemas..

 

pero si quieres podes usar uno de los script full que te proporciona en la web de adfly,

eso los solocas en tus etiquetas head que estan en el main_header.tpl

 

O si no podes buscar en la seccion de complementos que encontraras varios temas relacionados..

despues tengo otro metodo que me ha dado buenos resultados,

lo publicare en cualquier momento.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Miguel92
      Pedido: [Mod] Imagen de cabecera en comunidades
      Por: @fellomix
       
      Una segunda forma de poder hacerlo!
       
      1 -  Ejecutar esta consulta
      ALTER TABLE `c_comunidades` ADD `c_headercom` VARCHAR(255) NOT NULL AFTER `c_nombre_corto`; 2 -  Buscar en c.comunidades.php en la función nueva_comunidad()
                      'fecha' => time(),                 'nombre' => $tsCore->setSecure($tsCore->parseBadWords($_POST['nombre']), true),                 'ncorto' => $tsCore->setSeo($tsCore->setSecure($_POST['ncorto'], true)),
      y debajo agregamos
                      'headercom' => $tsCore->setSecure($tsCore->parseBadWords($_POST['headercom']), true),
      un poco más abajo buscamos
                  // Insertamos             if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO c_comunidades (c_autor, c_nombre, c_nombre_corto,
      y le agregamos a lado 
                   c_headercom,
      un poquito más abajo de
                      VALUES (                     \''.$tsUser->uid.'\',                     \''.$dato['nombre'].'\',                     \''.$dato['ncorto'].'\',
      agregamos
                          \''.$dato['headercom'].'\',
      Luego buscamos la función editar_comunidad($comid)
                          'pais' => $tsCore->setSecure($_POST['pais']),                         'desc' => $tsCore->setSecure($_POST['descripcion']),                     'color' => $tsCore->setSecure($_POST['back_color']),
      y debajo pegamos
                          'headercom' => $tsCore->setSecure($_POST['headercom']),
      más abajo buscamos 
                          c_acceso = \''.(int)$dato['acceso'].'\',                     c_permisos = \''.$dato['permisos'].'\',
      y debajo pegamos
       
                         c_headercom = \''.$dato['headercom'].'\',             
      3 - Después buscamos en c.crear_left.tpl
          <div class="item_form clearfix">         <label>Categoría</label>         <select name="categoria" id="ShowCats" class="required" onChange="com.subcat()" tabindex="3">             <option value="0">Selecciona una categoría</option>             {foreach from=$tsCats item=c}             <option value="{$c.cid}" {if $tsDato.c_categoria == $c.cid}selected="selected"{/if}>{$c.c_nombre}</option>             {/foreach}         </select>     </div>
      y debajo o arriba pegamos (se me olvido quitar los required, ya que no es obligatorio)
          <div class="item_form clearfix">         <label>Cabecera!</label>         <input type="text" name="headercom" tabindex="10" maxlength="180" size="60" class="required input_text https" placeholder="URL de portada (debe tener https://)" pattern="https://.*" value="{$tsDato.c_headercom}">         <small class="mg-lt">Solo admitirá los https!</small>     </div> 4 - Después buscamos c.com_info.tpl [línea 24 y 25]
      <div class="ver_com_info">     <div class="vci_left floatL">
      y la reemplazamos por
      <div class="ver_com_info" style="background-image: url({$tsCom.c_headercom});">     <div class="opacity">     <div class="vci_left floatL">
      luego debajo de la línea 61 agregaremos un 
          </div> 5 -  Por último agregaremos esto a comunidades.css
      .ver_com_info {     padding: 0; } .headercom {      background-position: center center;     background-size: cover;     background-repeat: no-repeat; } .opacity {     padding: 20px 8px;     background-color: rgba(255,255,255,.6); }  
    • By Miguel92
      Bueno dice N°2 porque a la N°1 la tengo que adaptar a la default ya que tenia class de bootstrap!
       

      si no se ve clic
       
      1) Crean un archivo llamado panel.js y agregan esto dentro
       
      2) En extras.css agregan esto
       
      3) Ahora crearemos un archivo llamado head_usuario.tpl y lo colocaremos en sections y dentro agregaremos
      la parte del st-panel-footer la pueden sacar no hay problema
       
      4) Ahora en la misma carpeta sections buscamos main_footer.tpl y agregaremos esto arriba de </body>
      {include file='sections/head_usuario.tpl'} <script src="{$tsConfig.js}/panel.js" type="text/javascript"></script>  
      5) Para los iconos descarguen esto → ICONOS FUENTES  ← y lo descomprimen en css
       
      6) Busquen en main_header.tpl y debajo de
      <link href="{$tsConfig.tema.t_url}/extras.css" rel="stylesheet" type="text/css" /> colocan
      <link rel="stylesheet" href="{$tsConfig.css}/iconfont.css">  
      y eso sería todo
       
      En el caso que haya error avísenme!
      Esta es la N°1
       
      si no se ve clic
      Ver panel N°2 ir a Demo32.hol.es
      Usuario: Demo
      Pass: demouser
    • By Rhuan
      Hola, este complemento podría considerarse en realidad una "plantilla" para el anterior RChat que publiqué ya que la mayor parte del funcionamiento es el mismo.
       
      Para instalar este chat no es necesario tener el anterior RChat y si lo tienes también puedes instalarlo sin problemas, los archivos se sobrescribirán.
       
       
      Actualización
      06/03/2015 a las 18:00 - Descarga actualizada: se ha corregido un fallo en el instalador que evita que aparezca el icono de los emoticonos. 08/03/2015 a las 22:10 - Descarga actualizada: se añadió seguridad adicional para evitar el flood. 09/03/2015 a las 23:15 - Descarga actualizada: ahora se muestran todos los emoticonos y se pueden agregar desde el chat.  
      Más capturas

        Caja de emoticonos abierta.
       

      Lista de moderación.
       

      Eliminar mensajes (onmouseover).
       

      Suspender usuario (onmouseover).
       
       
      Características
      Color de nick aleatorio como en grupos de WhatsApp. Suspender usuario por nick y por mensaje. Ver/editar/eliminar usuarios suspendidos. Borrar mensajes individualmente o todos de un usuario. Agrupar mensajes seguidos del mismo usuario. Mensajes propios diferenciados (alineado a la derecha en verde) BBCodes: [b], [i], [u], [br], [url], [color]. Imágenes y URLs automáticas. Censuras globales. Emoticonos globales a través de censuras. Antiflood, suspende durante 2 horas. El antiflood no afecta al staff. Diseño separado para funcionar con cualquier plantilla. Agregar emoticonos desde el chat. Selector de emoticonos.  
      Descarga
       
      Para Risus 1.2 o superior: rchat_whatsapp_1.2.zip
       
       
      Instrucciones
       
      Subir el directorio "install" a la raíz y acceder desde el navegador a http://www.tuweb.com/install/index.php
    • By Altffenser
      Hola, traigo esta pequeña modificación, es un dialogo de confirmación para cerrar sesión. Utilizo el plugin "mydialog" que trae por default el script por lo que no hará falta nada más. Este MOD lo vi hace años, lo publicó un usuario llamado mega-lucas ((o algo así (aún mantengo su V5 ))
       
      Instrucciones.
      1. Abrir el archivo acciones.js y al ultimo del archivo colocar:
      /* Logout confirm by Altffenser */ function open_logout_box() { mydialog.show(); mydialog.title('Cerrar sesión'); mydialog.body('Estas a punto de salir de tu cuenta. <b>¿Seguro que deseas continuar?</b>'); mydialog.buttons(true, true, 'Cerrar sesión', 'logout_by_now()', true, false, true, 'No, permanecer aquí', 'close', true, true); mydialog.center(); } function logout_by_now(){ $(function (){ window.location.href = global_data.url + "/login-salir.php"; }); } 2. Abrir el archivo head_menu.tpl y buscar:
      <li class="logout"> <a href="{$tsConfig.url}/login-salir.php" style="vertical-align: middle" title="Salir"> <span class="systemicons logout"></span> </a> </li> a) Reemplazar por:
      <li class="logout"> <a href="#" onclick="open_logout_box();" style="vertical-align: middle" title="Salir"> <span class="systemicons logout"></span> </a> </li>  
      ¡Has terminado!
       
      Con eso lo tendrán, ahora cada que den clic en "salir"; primero aparecerá un dialogo como este:
       

       
      Es muy sencillo el MOD pero a mi parecer, se ve bien Saludos
       
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×