Securité dans formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Securité dans formulaire

par Aureusms » 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.

par fabrice88250 » 05 mars 2009, 22:21

oui c'est exactement ça. :)

par Aureusms » 05 mars 2009, 21:59

Bonjour,

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

Securité dans formulaire

par fabrice88250 » 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);
?>