Securité dans formulaire

Mammouth du PHP | 620 Messages

05 mars 2009, 19:58

Bonjour,
Actuellement sur mon livre d'or j'utilise un système de sécurité pour éviter les spam.
Le problème et que depuis quelques temps j'ai des messages qui s'ajoutent sur mon livre d'or avec des liens vers des sites pornographique et autres.

Je souhaiterai donc amélioré le code que j'ai actuellement (qui génère l'image à reproduire) afin d'évité que des robots (si c'est bien des robots) continuent à me spammé mon livre d'or par leurs obscénités.

Mon code actuel est le suivant :
J’aimerai l'améliorer mais je ne sais pas comment.
Pouvez-vous m'aider ?
<?php
// on démarre une session pour pouvoir mémoriser le code
session_start();
// on définit les caractères utilisés pour le code généré
$liste = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// génére le code en piochant dans les caractères de la liste
$code = '';
while(strlen($code) != 6) {
   $code .= $liste[rand(0,36)];
}
// on mémorise le code de 6 caractères généré en session
$_SESSION['code']=$code; 
// on créé une image de 70 x 20 pixels (larg x hauteur) 
$img = imageCreate(70, 20) or die ("Problème de création GD");
// Choix de la couleur de fond, ici ça donne du Gris ( RVB)
$background_color = imagecolorallocate ($img, 97, 194, 59);
// Choix de la couleur de la police, ici du noir
$ecriture_color = imagecolorallocate ($img, 255, 255, 255);
// le code la police utilisée
$code_police=5;
// on créé une image jpeg en empêchant la mise en cache
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Cache-Control: no-store, no-cache, must-revalidate'); 
header('Cache-Control: post-check=0, pre-check=0', false); 
header("Content-type: image/jpeg");
// on introduit le code dans l'image
imageString($img, $code_police,(70-imageFontWidth($code_police) * strlen("".$code.""))/2,0, $code,$ecriture_color);
// on créé une image avec une qualité médiocre de 30%
// pour éviter qu'un robot puisse la lire
imagejpeg($img,'',30);
// on libère la mémoire
imageDestroy($img);
?>

ViPHP
ViPHP | 1996 Messages

05 mars 2009, 21:59

Bonjour,

Ce que tu veux c'est créer une image visible que par les humains ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 620 Messages

05 mars 2009, 22:21

oui c'est exactement ça. :)

ViPHP
ViPHP | 1996 Messages

05 mars 2009, 22:33

Dans un premier temps essaye plutôt de faire un watermark (un peu comme tu le fais actuellement : l'adaptation ne devrait pas être trop dur) (j'ai trouvé cela rapidement http://www.asp-php.net/scripts/asp-php/watermark.php) avec une images grises claire et des lignes ondulées aléatoires noires. Et tu "fusionne" ton écriture en noire.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr