IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PHP Discussion :

Comment protéger ses formulaires contre les spams


Sujet :

PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut Comment protéger ses formulaires contre les spams
    Bonjour tout le monde,
    Je suis entrain de cherche une solution à mes formulaires pour les protéger contre les spam.
    J'ai visité ce blog.
    Mon problème consiste à comprendre le principe de fonctionnement de la méthode énoncé dans l'article(dont parle le blog)vu que le lien est brisé.
    Pouvez vous me donner une méthode simple et facile pour sécuriser les formulaires autre que le captcha?
    Merci

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Tu veux une solution simple pour sécuriser un formulaire contre l'envoie de données par un robot autre qu'un captcha.

    Je te propose de nous l'expliquer une fois trouvée la solution miracle.

    La solution proposée est intéressante, mais ne résistera pas à trois ligned de code dans le bot.

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Points : 20 246
    Points
    20 246
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    La solution proposée est intéressante, mais ne résistera pas à trois ligned de code dans le bot.
    Ca sous entenderais tout de même que le bot est spécialement crée pour le site en question ce qui est plutôt rare.
    En général les bots remplisse tous les champs possible et essai de passer le captcha avec un OCR.

    Mon problème consiste à comprendre le principe de fonctionnement
    Le principe est très simple. On creer des champs (généralement de type hidden) qui devront être vide à la reception du formulaire.
    Les bots remplissant en général tout ce qu'il trouve , il remplirons ces champs cachés alors qu'un utilisateur ne pourra pas le faire.

    Malgré la contrainte apporter par le captcha ca semble tout de même la solution la plus robuste (si le captcha est bien fait).

    Tu peux aussi regarder du coter de http://akismet.com/ qui est vraiment très performant.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    Que pensez vous à propos de l'ajout d'une question que l'internaute doit y répondre?
    Je pense que cette idée peut résoudre mon problème.

  5. #5
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Citation Envoyé par grunk Voir le message
    Ca sous entenderais tout de même que le bot est spécialement crée pour le site en question ce qui est plutôt rare.
    En général les bots remplisse tous les champs possible et essai de passer le captcha avec un OCR.
    C'est une lute sans merci.

    Pour des sites de grande diffusion et/ou très rependus (je pense aux forum phpbb par exemple) il est évident que des bot ont été créé spécialement pour eux. Des jeux en ligne aussi.

    De plus, les bots sont conçu pour être facilement adaptable et configurable, il ne faut pas prendre les créateurs de bots pour des cons profonds... Les champs cachés à ne pas remplir, ils connaissent. Accessoirement, il est tellement simple de savoir si le champs hors visibilité (par css) qu'il est très simple de l’exclure automatiquement des remplissages sans qu'une programmation spécifique soit nécessaire.


    "Que pensez vous à propos de l'ajout d'une question que l'internaute doit y répondre?"
    C'est le principe du catcha non ?
    Tu peux faire des questions plus simple, genre 4 + 5 donner la réponse.

    Maintenant tu as un plugin sfFormExtraPlugin qui inclus un captcha relativement résistant avec un minimum de programmation à mettre en œuvre. Pourquoi vouloir réinventer la roue ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    Je vous remercie pour votre réponse.Mes formulaires sont déjà prêt et je veux ajouter un captcha.Je ne sais pas s'il est possible de travailler avec sfDoctrineGuardPlugin et sfFormExtraPlugin en meme temps.En fait je suis débutante et c'est pas moi qui a développé les formulaires,pour le moment je veux juste ajouter un captcha.
    Pouvez vous me conseiller comment je peux débuter?
    Merci

  7. #7
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Pour la question : "Pouvez vous me conseiller comment je peux débuter?"
    La réponse est : le tutoriel de symfony par sensio.


    Pour la question : "... je veux ajouter un captcha.Je ne sais pas s'il est possible de travailler avec sfDoctrineGuardPlugin et sfFormExtraPlugin en meme temps"
    La réponse est : oui (heureusement !).

    Le capcha est totalement indépendant de la base de données. Il revient a ajouter un widget et un validateur dans le(s) form(s) impliqué(s). Tout est expliqué dans le readme du plugin.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut
    Merci pour vos réponses pertinentes.
    Cette fois je veux savoir comment je peux installer ce plugin vu que je travaille directement sur le serveur(tous mes dossiers et fichiers sont localisé dans le serveur).Je travaille sous windows.
    J'ai pas suffisamment d'expérience avec le travail en ligne et j'ai commencé mon boulot par la tache d'ajout du captcha.Je souhaite que vous me répondiez à ma question.

    Cordialement

  9. #9
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    "Cette fois je veux savoir comment je peux installer ce plugin vu que je travaille directement sur le serveur..." je ne sais pas ce que représente "sur le serveur". Si c'est une machine en production, c'est extrêmement risqué de modifier un applicatif "en directe live".

    Si effectivement c'est une première intervention sur symfony, je recommande expressément de faire le tutoriel donné précédemment avant de ce lancer dans ce type de manipulation, ceci évitera des questions basique tel que : "J'ai pas suffisamment d'expérience avec le travail en ligne et j'ai commencé mon boulot par la tache d'ajout du captcha.Je souhaite que vous me répondiez à ma question." qui y sont traitées.

    Le plugin est disponible sur la page de téléchargement des plugins et le readme donne les méthodes de téléchargement.

    Personnellement, je préfère récupérer le plugin en zip et le décompresser dans le répertoire plugins/nomduPlugin (avec un s au premier répertoire) de symfony à la main. Mais la méthode par pearl marche bien aussi.

    Bonne chance.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut comment ajouter un captcha à un formulaire
    bonjour,
    Pouvez vous me guider comment utiliser sfFormExtraPlugin pour ajouter un captcha à un formulaire?
    Quels sont les étapes nécessaires bien afficher le captcha dans un formulaire?

  11. #11
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    La réponse est dans le message précédant.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut Utilisation de sfFormExtraPlugin
    Bonjour,
    J'essaye d'utiliser sfFormExtraPlugin dans mon formulaire.Pour ce ci j'ai essayé de suivre un tutoriel.
    En effet,installé le plugin sfFormExtraPlugin,je l'ai activé ensuite dans le fichier de configuration.Puis j'ai ajouté la ligne suivante 'captcha' => new sfWidgetFormInput(), à la fonction setup(dans mon cas elle est appelé setup et non pas configure)de mon fichier BaseQuestion.class.php comme indiqué dans le fichier ci joint.
    Je ne sais pas pourquoi le champ captcha ne s'affiche pas.Je ne sais pas comment est il possible d'utiliser le fichier BaseQuestion.class.php au lieu de Question.class.php.
    Pouvez vous m'expliquer pour bien comprendre les choses?
    Merci
    Fichiers attachés Fichiers attachés

  13. #13
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Mais pourquoi diable modifier BaseQuestion::setup() ?????

    Le tutoriel indique bien qu'il faut surcharger la classe QuestionForm et pas la classe QuestionForm. Il indique aussi que c'est la méthode configure() qu'il faut utiliser, pas setup().

    Les classes BaseXXX sont générées automatiquement par le framework. Tout ce que tu y fais sera perdu la prochaine fois que tu appellera build-model, build-form, build-filter, etc.

    Je note également que tu as ajouté un widget 'captcha' mais pas de validateur. Dans le tutoriel que tu cites, les manipulations pour l'un et l'autre sont indiquées.

    Une fois que ton code sera remis en phase avec les indications du tuto, on y verra peut-être plus clair

  14. #14
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2010
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 144
    Points : 241
    Points
    241
    Par défaut
    Deux choses :
    - Comme dit dans le post précédent il ne faut pas modifier le setup() de BaseQuestionForm.class.php mais le configure() de QuestionForm.class.php

    - Ensuite tu as ajouté "'captcha' => new sfWidgetFormInput()" qui est comme son nom l'indique un input, il faut utiliser l'objet sfWidgetFormReCaptcha() du plugin sfFormExtra

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    Merci pour toutes les réponses.
    J'ai essayé de modifier le fichierQuestionFirstPage.class.php
    comme montré ci-dessous:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
    
    /**
     * Question form.
     *
     * @package    form
     * @subpackage Question
     * @version    SVN: $Id: sfDoctrineFormTemplate.php 6174 2007-11-27 06:22:40Z fabien $
     */
    class QuestionFirstPageForm extends BaseQuestionForm
    {
      
      public function configure()
      {
       unset(
    	    
    		$this["id"], $this["created_at"],$this["resolu"], $this["payer"],$this["flag_contrat"], $this["file"],$this["id_utilisateur"], 
    		$this["email_client"], $this["code_postal_client"],
    		$this["pays_client"], $this["nom_client"],
    		$this["prenom_client"], $this["tel_client"],$this["updated_at"],$this["reponse"]
    	);	
    	$choix = Doctrine::getTable('question')->getDomaines();
    	$this->widgetSchema['domaines'] = new sfWidgetFormChoice(array('choices'  => $choix));
    
        $this->widgetSchema['title'] = new sfWidgetFormInput(array('label' => 'Titre'), array('size' => 53));
      
        $this->widgetSchema['question'] = new sfWidgetFormTextarea(array('label' => 'Question*'), array('cols' => '80', 'rows' => '15'));
    	
    	$this->widjetSchema['captcha']=new sfWidgetFormInput();
    	
    	
    	$this->widgetSchema->setLabels(array(
      'domaines'    => 'Domaine dintervention',
      'title'   => 'Titre de votre question',
      'question' => 'Votre question',
      'captcha' => 'captcha',
        ));
    	$this->setValidators(array(
          'title'              => new sfValidatorString(array('max_length' => 255, 'required' => false),
                                                        array(
                                                          
                                                          'max_length' => "Titre trés long. 255 characters maximum.",
                                                         
                                                        )),
          'question'           => new sfValidatorString(array('max_length' => 2147483647, 'required' => false),
                                                        array(
                                                          
                                                          'max_length' => "Question trés longue.",
                                                          
                                                        )),
                'domaines'           => new sfValidatorChoice(array('choices' => array_keys(Doctrine::getTable('Question')->getDomaines()), 'required' => false)),
        ));
    	
      }
    }
    Mais rien ne s'est changé dans mon formulaire
    Pouvez vous me donner vos remarques?
    Comment je peux générer mes form en ligne(d'habitude je travaille avec netbeans sous windows ou ubunto et seulement en local,je ne connais pas l'équivalent de generate et clear le cache directement en ligne).Pouvez vous me donner une réponnse ou une idée comment en faire?
    Merci

  16. #16
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Qu'est-ce que tu entends par directement en ligne ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    J'ai mal posé ma question:je doit avoir une session ssh pour faire la génération des codes automatiquement(ligne de commande) et en ligne.
    Excusez moi

  18. #18
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Quelque soit l'application développée, tu as tout intérêt à développer en local.

    Je ne vois pas trop comment développer en ligne (ce qui pour moi entend "sur le serveur de production") sans risquer de tout détruire.

    Par contre, depuis une interface ssh tu peux parfaitement lancer des commandes du CLI de symfony et donc un cc.

  19. #19
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 65
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    C'est exactement ce que vous avez dit:je veux travailler sur le serveur de production.Mon site est hébergé sous l'hébergeur ovh.
    J'ai essayé de télécharger putty.exe pour qu'il me permet de travailler
    avec une session ssh,mais j'ai toujour le meme problème d'ouverture de la session(j'entre le login et le mot de passe puis la fenetre disparait automatiquement sans affichage du message de succés comme indiqué dans ce guide

  20. #20
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Pour ce qui est de la connexion ssh sur le serveur OVH, ce n'est pas moi qui vais pouvoir t'aider. Tu as des salles sur ce forum dédiée à ce type de problèmes avec plein de personnes compétentes qui pourront te guider bien mieux que moi.

    Pour le travail en ligne, j'ai écris pas plus loin que cette après-midi que c'était comme traverser une piste de cirque sur un fil en sautant sur un pied, le fille passant au dessus d'une cage pleine de lions affamés, le tout avec une main attachée dans le dos et les yeux bandés.

    C'est juste une très mauvaise idée et une quasi certitude de se planter méchamment avant la fin du travail, voir de mettre hors service durablement tout le site.

    Pour développer tranquillement, il convient de récupérer le site en local, de faire les modifications et de les réimplanter ensuite. Tout autre solution est suicidaire.

Discussions similaires

  1. [phpBB] Comment luttez-vous contre les spams ?
    Par boteha dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/07/2008, 21h53
  2. [Mail] Protéger l'emailing contre le spam
    Par l_moslem dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2007, 01h49
  3. Comment afficher un formulaire toutes les deux heures?
    Par casho dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/09/2006, 17h43
  4. Réponses: 17
    Dernier message: 31/10/2005, 16h59
  5. Comment protéger ses sources?
    Par Titeuf21121 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 25/03/2004, 07h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo