Underc0de

Programación Web => Back-end => Mensaje iniciado por: HckDrk en Febrero 03, 2013, 04:10:58 AM

Título: Convertir srtring de email a imagen [antispam]
Publicado por: HckDrk en Febrero 03, 2013, 04:10:58 AM
hola todos! no se me ocurria como nombrar el post! XD

he tenido la experiencia de que los bots que indagan por las webs, buscando correos para hacer publicidad no deseada (spam), y me mandan correos... a partir de eso, se me ocurrió hacer un script que detecta con expresiones regulares el correo dentro de una cadena de texto, pasa por rot13 el correo, y muestra una imagen en vez del correo

aquí les dejo mi sencillo y pequeño script, que cuenta con 2 archivos, el index, y el archivo donde se generará la imagen...

index.php:
Código (php) [Seleccionar]

<html>
<head>
<title>Cambia correo por imagen</title>
</head>
<body bgcolor="black" text="white">
<form method="post" action="">
<textarea cols="50" rows="20" name="contenido"><?php echo htmlentities($_POST['contenido']); ?></textarea><br>
<input type="submit" value="enviar" name="enviar">
</form>
<?php


function correo_img($correo){

$ss'/(\S+@\S+\.\S+)/ie';
$resultadopreg_replace($ss,"str_rot13('$1')"$correo);
$s'/(\S+@\S+\.\S+)/i';
$r "<img src='imagen.php?text=$1&color=w'>";
$resultadopreg_replace($s$r$resultado);

return 
$resultado;

}


if(
$_POST['enviar']){


$contenido=htmlentities($_POST['contenido']);
$contenido=str_replace("\n""<br>\n"$contenido);
echo correo_img($contenido);


}

?>

</body>
</html>




imagen.php
Código (php) [Seleccionar]

<?php

$text
=str_rot13(strip_tags($_GET['text']));
$color=strip_tags($_GET['color']);


header("Content-Type: image/png");
if(
$color!="b" && $color!="w"){
$width=55;
}else{
$width=strlen($text)*10;
}
$imagen = @imagecreate($width20);

if($color=="b"){
$color_fondo imagecolorallocate($imagen000);
$color_texto imagecolorallocate($imagen255255255);
}else if($color=="w"){
$color_fondo imagecolorallocate($imagen255255255);
$color_texto imagecolorallocate($imagen000);
}else{
$color_fondo imagecolorallocate($imagen255255255);
$color_texto imagecolorallocate($imagen25500);
$text="error!";
}

imagestring($imagen556,  $text$color_texto);
imagepng($imagen);
imagedestroy($imagen);

?>




si desean ver su funcionamiento, aqui les dejo un demo...
http://hckdrk.webcindario.com/mail2img/index.php

Saludos!
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: arthusu en Febrero 03, 2013, 05:06:07 AM
hola bro me gusto mucho me podrias explicar una cosa je! para que sirve $1
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
saludos espero tu respuesta :P gracias por el aporte :D
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: ~ Yoya ~ en Febrero 03, 2013, 10:32:26 AM
$$ = /(\S+@\S+\.\S+)/ie

Entonce quedara así:
Código (php) [Seleccionar]
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
$resultado= preg_replace("/(\S+@\S+\.\S+)/ie","str_rot13('$1')", $correo);

$i, hace referencia al paréntesis del patrón (el primer parámetro, la regex).

Saludos.
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: Alex en Febrero 03, 2013, 12:25:38 PM
no me parece muy seguro, porque el texto sigue estando en el url de la imagen, es muy sencillo volverlo a dejar como estaba.

saludos!
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: arthusu en Febrero 03, 2013, 01:04:53 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
$$ = /(\S+@\S+\.\S+)/ie

Entonce quedara así:
Código (php) [Seleccionar]
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
$resultado= preg_replace("/(\S+@\S+\.\S+)/ie","str_rot13('$1')", $correo);

$i, hace referencia al paréntesis del patrón (el primer parámetro, la regex).

Saludos.

muchas gracias bro :)
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: Hackmundy en Febrero 03, 2013, 02:07:16 PM
Se ve muy bueno tengo mi PC dañada cuando reuna dinero me compro una y asi seguire practicando....

Saludos...
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: Dusk en Febrero 27, 2013, 05:32:46 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
no me parece muy seguro, porque el texto sigue estando en el url de la imagen, es muy sencillo volverlo a dejar como estaba.

saludos!

puedes modificar el script para que el correo lo extraiga de una DB o algo... es sólo un demo...
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: Snifer en Febrero 27, 2013, 07:29:48 PM
Agarra el codigo y modificala que no esta complicado solo agarras el nombre desde una variable que llega a ser un query a la BD con el User Name que quieres extraer

Regards,
Snifer
Título: Re:convertir srtring de email a imagen [antispam]
Publicado por: WHK en Abril 24, 2013, 10:59:01 AM
Hola, la idea es buena y de hecho hay muchos que lo usan.

Se ve corrido:
(http://hckdrk.webcindario.com/mail2img/[email protected]&color=b)

Pero para mi es una solución un tanto rebuscada para algo tan simple, que pasa si estoy utilizando python o perl o .net o java? tendría que cranearme como hacerlo tambien de esa manera.

En cambio hay otras alternativas mejores, por ejemplo:

Digamos que tengo un mail, este mail estará en urlencode:

<div class="_mail">%79%6f%40%67%6d%61%69%6c%2e%63%6f%6d</div>

Entonces desde <head> agregamos una etiqueta javascript que tome todas las divisiones con correos y las transforme en texto:
Código (javascript) [Seleccionar]
$('._mail').each(function(){
$(this).html(
'<a href="mailto:' +
unescape($(this).html()) +
'">' +
unescape($(this).html()) +
'</a>'
);
});


Recordar que los robots de busqueda de correos no utilizan algoritmos personalizados para un solo sitio web o si no el administrador se volvería loco por un par de correos, solo basta con cosas simples para ocultarlos.

Cuidado con utiliza el famoso test [at] gmail [dot] com porque hay muchos robots que incluyen eso en sus algoritmos para rebuscarlos.

Lo de la imagen es buena idea pero a traves de javascript también lo es.
Se puede usar otro algoritmo no necesariamente urlencode, puede ser base64 o hasta rc4 con clave pública.

Saludos.