• STATISTIQUES
  • Il y a eu un total de 0 membres et 50699 visiteurs sur le site dans les dernières 24h pour un total de 50 699 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    Hacking
    [EN] Net Force
    Javascript: 9, Java Applets: 6, Cryptography: 16, Exploits: 7, Cracking: 14, Programming: 13, Internet: 15, Steganograph...
    Challenges
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Php] Ajouter un captcha facilement et rapidement
17-06-2011, 04h22 (Modification du message : 19-11-2012, 18h55 par InstinctHack.)
Message : #1
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
[Php] Ajouter un captcha facilement et rapidement
Au travers de mes années de codage, y a une chose avec lequel je dois continuellement me battre ... Les maudits bots qui détectent et spam n'importe quel formulaire ... La seule façon de les empêcher de passer au travers du formulaire c'est dit ajouter ce que l'ont appelle un captcha qui consiste a demander au visiteur de taper le contenu d'une image dans une boîte.

Celui que j'utilise dans tous mes sites se nomme "CaptchaSecurityImages" (probablement un manque d'imagination de l'auteur lol)

CaptchaSecurityImages.php
Code PHP :
<?php
// Modifier par CyberSee

// Déclaration des session
session_start();

// Déclaration de la class
class CaptchaSecurityImages
{
    
    
// On load le nom de la font utilisé pour générer les caractères
    
var $font 'monofont.ttf';

    
// Fonction qui génère une string random alphanumérique
    
function generateCode($characters)
    {
        
// List de tous les caractères autoriser dans la string random
        
$possible '23456789bcdfghjkmnpqrstvwxyz';
        
$code '';
        
$i 0;
        while (
$i $characters) {
            
$code .= substr($possiblemt_rand(0strlen($possible) - 1), 1);
            
$i++;
        }
        return 
$code;
    }
    
    
// Création de l'image avec la librairie GD
    
function CaptchaSecurityImages($width '120'$height '40'$characters '6')
    {   
        
// On va chercher la string
        
$code $this->generateCode($characters);
        
// On détermine que le font va être a 75% en hauteur de l'espace disponible
        
$font_size $height 0.75;
        
// On créé le canvas de l'image
        
$image imagecreate($width$height) or die('Cannot initialize new GD image stream');
        
// On détermine l’arrière-plan de l'image
        
$background_color imagecolorallocate($image255255255);
        
// On détermine la couleur du texte
        
$text_color imagecolorallocate($image2040100);
        
// On détermine la couleur du bruitage
        
$noise_color imagecolorallocate($image100120180);
        
// On créé du bruitage en point dans l’arrière-plan 
        
for ($i 0$i < ($width $height) / 3$i++) {
            
imagefilledellipse($imagemt_rand(0$width), mt_rand(0$height), 11$noise_color);
        }
        
// On créé du bruitage en ligne dans l’arrière-plan 
        
for ($i 0$i < ($width $height) / 150$i++) {
            
imageline($imagemt_rand(0$width), mt_rand(0$height), mt_rand(0$width),
                
mt_rand(0$height), $noise_color);
        }
        
// On ajoute le texte a l'image
        
$textbox imagettfbbox($font_size0$this->font$code) or die('Error in imagettfbbox function');
        
$x = ($width $textbox[4]) / 2;
        
$y = ($height $textbox[5]) / 2;
        
imagettftext($image$font_size0$x$y$text_color$this->font$code) or die('Error in imagettftext function');
        
        
// On affiche l'image
        
header('Content-Type: image/jpeg');
        
imagejpeg($image);
        
imagedestroy($image);
        
        
// On active la session
        
$_SESSION['security_code'] = $code;
    }

}

// On va chercher les variables initialiser dans la source de limage
$width = isset($_GET['width']) && $_GET['width'] < 600 $_GET['width'] : '120';
$height = isset($_GET['height']) && $_GET['height'] < 200 $_GET['height'] : '40';
$characters = isset($_GET['characters']) && $_GET['characters'] > $_GET['characters'] : '6';

// On utilise la class
$captcha = new CaptchaSecurityImages($width$height$characters);

?>

Procédure d'utilisation:
1. Uploader le fichier CaptchaSecurityImages.php (en pièce attachée)
2. Uploader le fichier monofont.ttf http://maplaza.ca/administration/monofont.ttf (hoster gratuitement par moi ici)

Utilisation:
Dans le formulaire ou vous voulez faire apparaitre le captcha ajoutez

Code :
<img src="CaptchaSecurityImages.php?width=100&height=40&characters=3" /><br><br>
Sécurité:<br><input type="text" name="security_code" class="imput_box" style="border:1px;border-color:#000000; border-style: solid;" size="25">

Il ya 3 paramètres éditables passer en variable GET width=100 (La largeur de l'image) height=40 (La hauteur de l'image) characters=3 (Le nombre de caractères) -> C'est pas nécessairement plus sécurisé que d'avoir plus de caractère... c'est juste plus chiant pour l'utilisateur

À la validation, ajouter
Code PHP :
if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {   
// Le code est bon    
} else {  
echo 
"- Désolé, vous devez copier le contenu de l'image dans le champ sécurité.<br>$err";   


Vous pouvez le voir en action sur ce site que j'ai fait
http://renovationrealite.com/index.php?mod=cyber

Veillez cité la source et l'auteur si vous désirer reprendre mon tuto.

Soyez intelligent et restez WhiteHat!
Par CyberSee
+1 (1) -1 (0) Répondre
06-08-2011, 23h38
Message : #2
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
[PHP] Ajouter un captcha facilement et rapidement
Ah ouais dsl en voici un autre
[Image: captchaex.png]
+1 (0) -1 (0) Répondre
07-08-2011, 01h12 (Modification du message : 20-08-2011, 11h37 par Armel.)
Message : #3
Armel Hors ligne
Membre
*



Messages : 38
Sujets : 2
Points: 1
Inscription : Aug 2011
[PHP] Ajouter un captcha facilement et rapidement
CyberSee a écrit :Au travers de mes années de codage, y a une chose avec laquelle je dois continuellement me battre... Les maudits bots qui détectent et spament n'importe quel formulaire... La seule façon de les empêcher de passer au travers du formulaire c'est dit ajouter ce que l'ont appelle un captcha qui consiste a demander au visiteur de taper le contenu d'une image dans une boîte

Ça ne marche que pour le bots floodeur sans bon OCR.
Un humain floodeur pourra trouver un faille dans ce bout de code lui permettant de spamer sans avoir à lire/écrire le captcha plus d'une fois.
+1 (0) -1 (0) Répondre
08-08-2011, 19h01
Message : #4
Zhyar Hors ligne
Membre actif
*



Messages : 164
Sujets : 5
Points: 15
Inscription : Jun 2011
[PHP] Ajouter un captcha facilement et rapidement
Super merci ! Je cherchais ça pour une page d’inscription, ça va m'être utile.
+1 (0) -1 (0) Répondre
29-02-2012, 23h35
Message : #5
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Ajouter un captcha facilement et rapidement
malheureusement, les captcha ne vont pas avec l'accebilité :/ il faut donc en plus un captcha audio...
sinon on peux rajouter un <input style=display:none;> et tester si il est rempli si oui c'est un robot Smile
(c'est une simple protection en plus, qui ne gene pas mais qui protege encore un peu plus Wink )
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
02-04-2012, 23h09
Message : #6
(Y/n)
Non-enregistré



 
RE: Ajouter un captcha facilement et rapidement
L'image produite est "cassée" :/ en gros je ne l'a vois pas ..

Comment puis je faire ?

Cordialement,
positive (0) negative (0) Répondre
03-04-2012, 00h27
Message : #7
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Ajouter un captcha facilement et rapidement
J'ai pas tester le code de CyberSee...
Par-contre je sais que je vais bientot commencer à coder un multi-captcha, genre dans 2 semaines ^^"

T'as quoi comme message d'erreur ??
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
03-04-2012, 05h55
Message : #8
(Y/n)
Non-enregistré



 
RE: Ajouter un captcha facilement et rapidement
Voila ce que j'ai :

[Image: 800886captcha.png]

Donc pour mettre un code c'est plus dur ^^
positive (0) negative (0) Répondre
03-04-2012, 09h38 (Modification du message : 03-04-2012, 09h40 par InstinctHack.)
Message : #9
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Ajouter un captcha facilement et rapidement
-_- bah c'est utf-8 quoi --"

met ça <meta charset="utf-8" />

EDIT : désolé je vient de me lever xD Et quand tu rentre l'url de l'image, c'est quoi le message d'erreur ??
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
03-04-2012, 12h08
Message : #10
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,609
Sujets : 71
Points: 465
Inscription : Jan 2012
RE: Ajouter un captcha facilement et rapidement
A mon avis ça doit être un souci avec la php-gd qui doit pas être installé (ou activé) sur ta machine.

Regarde dans ton php.ini pour l'activer Wink
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
03-04-2012, 18h15
Message : #11
(Y/n)
Non-enregistré



 
RE: Ajouter un captcha facilement et rapidement
@sonn

Oui t'inquiète je vais changer le charset mais c'était vite fait j'avais pas le temps Tongue

@aaSSfxxx

Merci Smile
Mais j'ai trouvé c'étais une variable que j'avais modifié qui buggais ^^
positive (0) negative (0) Répondre
03-04-2012, 20h50
Message : #12
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Ajouter un captcha facilement et rapidement
Un peu hs mais bon....
Je veut pas critiquer le code de CyberSee mais, quel est l'interet de le faire en POO ?? une simple fonction suffit nan ?
Je voit pas l'utilité de le coder ainsi :p Je démarre en POO mais je suis avide de connaisance Wink

(l'autoload peut-etre ? dommage que ça existe pas pour les fonctions :/ )
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
03-04-2012, 22h02
Message : #13
(Y/n)
Non-enregistré



 
RE: Ajouter un captcha facilement et rapidement
Désoler de vous déranger encore :/

Mais c'est encore cette histoire d'image cassée ..
En local ça marche parfaitement, mais une fois que je mets en ligne le code ça me renvois au départ ...

Je suis actuellement hébergé sur 000webhost (gratuit)

Encore une fois désolé du dérangement occasionné.
positive (0) negative (0) Répondre
03-04-2012, 22h16
Message : #14
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Ajouter un captcha facilement et rapidement
C'est rien Wink
T'as mis aussi le ttf ? (ça arrive d'oublier :p )
sinon je sais que gb est activer sur cet hebergeur Wink
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
04-04-2012, 15h27
Message : #15
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,609
Sujets : 71
Points: 465
Inscription : Jan 2012
RE: Ajouter un captcha facilement et rapidement
T'obtiens quelle erreur dans l'image sur 000webhost ?
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
Tongue [JavaScript] faire de l'Ajax facilement InstinctHack 0 109 02-03-2012, 01h39
Dernier message: InstinctHack

Atteindre :


Utilisateur(s) parcourant ce sujet : 8 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut