Page 1 sur 1

Securité dans formulaire

Posté : 05 mars 2009, 19:58
par fabrice88250
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);
?>

Posté : 05 mars 2009, 21:59
par Aureusms
Bonjour,

Ce que tu veux c'est créer une image visible que par les humains ?

Posté : 05 mars 2009, 22:21
par fabrice88250
oui c'est exactement ça. :)

Posté : 05 mars 2009, 22:33
par Aureusms
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.