Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Real Capcha - El blindaje perfecto contra los bots

Estas en el tema de Real Capcha - El blindaje perfecto contra los bots en el foro de Sistemas de gestión de contenidos en Foros del Web. Acabo de desarollar un script PHP que es muy fuerte contra los bots ;D Consiste en lo siguiente: Tienes que decir cual es la accion ...
  #1 (permalink)  
Antiguo 04/08/2008, 14:01
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Real Capcha - El blindaje perfecto contra los bots

Acabo de desarollar un script PHP que es muy fuerte contra los bots ;D
Consiste en lo siguiente:
Tienes que decir cual es la accion que hace la persona de la imagen. Cada imagen tiene en la base de datos una definicion determinada de la accion. Aqui un ejemplo:

Aqui el codigo: xD
SQL:
Código:
--
-- Estructura de tabla para la tabla `capcha`
--

CREATE TABLE IF NOT EXISTS `capcha` (
  `id` int(11) NOT NULL auto_increment,
  `answer` varchar(250) NOT NULL,
  `img` varchar(250) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Volcar la base de datos para la tabla `capcha`
--

INSERT INTO `capcha` (`id`, `answer`, `img`) VALUES
(1, 'Eating', '7.jpg'),
(2, 'Playing fotball', '8.jpg'),
(3, 'Talking on the phone', '11.jpg');
capcha.php
Código PHP:
<?
session_start
();
include(
"capcha_mysql.php");

$query mysql_query("SELECT * FROM capcha ORDER BY rand() LIMIT 5");
$sql mysql_fetch_array($query);
$_SESSION['answer'] = $sql['answer'];

header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("http://www.forosdelweb.com/images/$sql[img]");
imagejpeg($im);
imagedestroy($im);
?>
form.php
Código PHP:
<?
include("capcha_mysql.php");
$query mysql_query("SELECT * FROM capcha ORDER BY rand() LIMIT 5");

$an = array();
$rand rand(15);
$na $rand;
$n 0;
session_start();
$an[$rand] = $_SESSION['answer'];

while(
$i=mysql_fetch_array($query)) {
$n $n 1;
if(
$n != "$na" && $i[answer] != "".$_SESSION['answer']."") {
$an[$n] = $i[answer];
}
}
?>
<img src="capcha.php" style="border: 3px solid #666699"><p>
<font size="6" color="#666699">Que acción realizan las personas de la imagen??</font></p>
<form method="POST" action="">
<?
for($i=1;$i<=5;$i++) {
if (
$an[$i] != NULL) {
echo 
"<p>$an[$i] <input type=\"radio\" value=\"$an[$i]\" name=\"answer\"></p>";
}
}
?>

<p><input type="submit" value="Enviar"></p>
</form>
capcha_mysql.php
Código PHP:
<?
$host 
'localhost';
$user 'root';
$pass 'password';
$db 'capcha';
$connect = @mysql_connect($host$user$pass) or die ('Real-Capcha cant make the connection whit mysql.');
mysql_select_db($db$connect) or die ('DB dont exist');
?>
Lo dejo como codigo libre, podeis hacer mejoras si quereis! :)

PARA LOS DE SOLOTRADES.COM :
QUE SOY YO JODER!

Última edición por magTpeak; 18/08/2008 a las 06:34
  #2 (permalink)  
Antiguo 04/08/2008, 14:16
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Real Capcha - El blindaje perfecto contra los bots

Aunque no lo he probado, se ve muy bien, te felicito.

Solo una recomendación, y es entorno a la accesibilidad, ¿qué pasa si entra una persona invidente o con serios problemas de vista? ¿o que no pueda ver imágenes en el navegador?

He visto que la mayoría de captchas adicionan una opción de escuchar lo que hay en la imagen.

Si lo agregas dejarás tu sistema de captcha blindado contra bots, pero no contra personas con algún tipo de discapacidad.

Saludos y te felicito por la creatividad y por liberar tu código
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #3 (permalink)  
Antiguo 04/08/2008, 23:12
agd
 
Fecha de Ingreso: mayo-2008
Mensajes: 98
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Real Capcha - El blindaje perfecto contra los bots

esta buena la idea, yo tambien usaba algo muy parecido para evitar el spam en los foros phpbb2 ya que gralmente se registran miles de spamers y el captcha que trae por defecto el foro no sirve..
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 12:56.