Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

securiser un formulaire avec mot a retaper

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
jooki
Nouveau WRInaute

Inscrit le: 22 Juil 2008
Messages: 4

URL permanente de ce messagePosté le : Mar Juil 29, 2008 4:57    Sujet du message: securiser un formulaire avec mot a retaper

Bonjour
j'ai un formulaire que j'aurais voulu sécuriser avec un mot a taper antispam et je ne c'est pas quoi mettre dans le code pour qu'il reconnaisse le mot antispam, ca fait plusieurs heures que je trifouille le code mais sans résultat, en plus j'aurais voulu mettre des stripslashes et htmlspecialchars.

Si une bonne âme pouvait me mettre dans le code ce qu'il faut pour le mot antispam et les stripslashes, htmlspecialchars et m'expliquer car la je seche !



Code:
 <?
        /* configuration du script d'envoi */
        $nom_du_site = "monsite" ; // utilisé lors de l'envoi de la copie du message
        $to = "monmail" ; // obligatoire : email du destinataire - contact du site
        $copie_a_expediteur = 0 ; // mettre 1 si on veut envoyer une copie du message à l'expéditeur / visiteur du site
        $copie_au_webmaster = 1 ; // mettre 1 si on veut faire un Cc au webmaster du site - souvent utile pour débugger au départ ou si on veut être au courant des messages qui transitent via le site
        $mail_webmaster = "monmail" ; // mettre adresse du webmaster pour envoi du Cc
        /* fin de la config */

        // tests de sécurité si le formulaire a été envoyé
        if (isset($_POST["send"]) ){
            $secure = true ;
            $from = $_POST["from"] ;
            $sujet=mb_encode_mimeheader($_POST["sujet"]) ;
         $antispam = $_POST["antispam"] ;
            //tests des adresses mail expéditeur, destinataire et webmaster
            if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$from)) {
                echo('Adresse de courriel Invalide <br />') ;
                $secure = false ;
            }
            if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$mail_webmaster)) {
                echo('Adresse de courriel Invalide <br />');
                $secure = false ;
            }
            if(!preg_match('/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i',$to)) {
                echo('Adresse de courriel Invalide <br />');
                $secure = false ;
            }
         }
         if ($antispam == 'antispam')
         {
            // test des saisies obligatoires
            if ( !$from ||!$sujet ||!$antispam ||!$txtmsg ) {
                echo('Mail + sujet + \'antispam\' et message obligatoires <br />');
                $secure = false ;
            }
        }

        if ( !$secure ){
        // Si le formulaire n'a pas été envoyé ou n'est pas secure, on l'affiche
        ?>

        <form action="" method="post">
            <p></p>
            <fieldset>
                    <legend style="margin-bottom: 5px;">Envoyer un message (<strong>*</strong> champs obligatoires)</legend>
                    <p style="float: left;">
                        <label for="nom">Nom :</label>
                        <br />
                        <input id="nom" name="nom" type="text"
                        value="<? if ($_POST["nom"]) echo $_POST["nom"]?>" />
                        <br />
                        <label for="prenom">Prénom :</label>
                        <br />
                        <input id="prenom" name="prenom" type="text"
                        value="<? if ($_POST["prenom"]) echo $_POST["prenom"]?>" />
                        <br /><br />
                        <label for="from">Adresse de courriel<strong>*</strong> : </label>
                        <br />
                        <input id="from" name="from" type="text"
                        value="<? if ($_POST["from"]) echo $_POST["from"]?>" />
                  </p>
                  <br />
                        <label for="sujet">Sujet<strong>*</strong> :</label>
                        <br />
                        <input id="sujet" name="sujet" type="text"
                        value="<? if ($_POST["sujet"]) echo $_POST["sujet"]?>" />
                        <br />
                  <p><input type="text" value="Tapez ici le mot 'antispam'" size="35" name="antispam" onfocus="javascript:this.value=''" /></p>
                  <br />
                  <br />
                  <br />
                        <label for="txtmsg">Message :<strong>*</strong></label>
                        <br />
                        <textarea id="txtmsg" name="txtmsg" cols="30" rows="10"><?
                        if ($_POST["txtmsg"])
                            echo $_POST["txtmsg"] ;
                        else echo "Votre message..." ;
                        ?></textarea>

                        <br /><br />
                        <input value="Envoyer" name="send" type="submit" />
                    </p>
                </fieldset>
        </form>

        <?
        }
        else{
            // Si c'est ok - secure et données
            // on concatène le texte du message
            $message = $_POST[txtmsg]."\n \nEnvoyé par : ".$_POST[nom]." ".$_POST[prenom]."\n" ;
            // création du header du message
            $headers = "From: ".$from."\n" ;
            $headers.= "Reply-To: ".$from."\n" ;
            $headers.= "X-Mailer: PHP/".phpversion()."\n" ;
            // Cc au webmaster si choix activé
            if ( $copie_au_webmaster == 1 ) {
                $headers.= "Cc: $mail_webmaster\n" ;
            }
            // On envoi le mail :
            if ( mail($to,$_POST["sujet"],stripslashes($message),$headers) ){
                // Si le mail a bien été envoyé, message de confirmation
                echo "Votre mail a bien été envoyé à $to.<br />";
            }
            else{
                // sinon, message d'erreur.
                echo "Votre mail n\'a pas pu être envoyé.<br />";
            }
            // envoi d'une copie à l'expéditeur si option choisie
            if ( $copie_a_expediteur == 1 ) {
                $message = "Copie du mail envoyé sur le site ".$nom_du_site."\n\n". $message ;
                $headers = "From: ".$to."\n" ;
                $headers.= "X-Mailer: PHP/".phpversion()."\n" ;
                $sujet = "Copie de : ". $_POST["sujet"] ;
                if ( mail($from,$sujet,stripslashes($message),$headers) ){
                    // Si le mail a bien été envoyé, message de confirmation
                    echo "Vous allez recevoir une copie du mail envoyé.<br />";
                }
                else{
                    // sinon, message d'erreur.
                    echo "Erreur lors de l'envoi de la copie.<br />";
                }
            }
        }
        ?>


Merci d'avance, ca pourra servir d'exemple de mail pour quelqu'un d'autre.
 
jooki
Xcepty
Nouveau WRInaute

Inscrit le: 30 Juin 2005
Messages: 42
Localisation: Rhônes Alpes

URL permanente de ce messagePosté le : Mar Juil 29, 2008 9:24    Sujet du message: securiser un formulaire avec mot a retaper

Bonjour jooki,

Si j'étais toi j'aurai plutôt opté pour un CAPTCHA.
 
Xcepty
mahdivitche
WRInaute passionné
WRInaute passionné

Inscrit le: 06 Jan 2008
Messages: 570
Localisation: Marrakech maroc

URL permanente de ce messagePosté le : Mar Juil 29, 2008 9:37    Sujet du message: securiser un formulaire avec mot a retaper

pour telecharger le code de captcha

http://www.annuaire.ait-ourir.net/captcha.rar

et le code ici :

http://www.webrankinfo.com/forums/highlight-post_917717_.htm#917717
 
mahdivitche Visiter le site web du posteur
Xcepty
Nouveau WRInaute

Inscrit le: 30 Juin 2005
Messages: 42
Localisation: Rhônes Alpes

URL permanente de ce messagePosté le : Mar Juil 29, 2008 10:15    Sujet du message: securiser un formulaire avec mot a retaper

Merci pour les liens mahdivitche ^^
 
Xcepty
mahdivitche
WRInaute passionné
WRInaute passionné

Inscrit le: 06 Jan 2008
Messages: 570
Localisation: Marrakech maroc

URL permanente de ce messagePosté le : Mar Juil 29, 2008 10:19    Sujet du message: securiser un formulaire avec mot a retaper

de rein Laughing

si tu as besoin des autres exepmles de captcha : http://www.captcha.fr/

le telechargement est gratuit Laughing
 
mahdivitche Visiter le site web du posteur
jooki
Nouveau WRInaute

Inscrit le: 22 Juil 2008
Messages: 4

URL permanente de ce messagePosté le : Mar Juil 29, 2008 17:29    Sujet du message: securiser un formulaire avec mot a retaper

ok merci je vais voir pour le captcha
 
jooki
lbache
Nouveau WRInaute

Inscrit le: 04 Nov 2008
Messages: 1

URL permanente de ce messagePosté le : Mar Nov 04, 2008 16:05    Sujet du message: Réflexion

Un truc que je ne comprend pas bien dans votre solution. Pourquoi ennuyer le visiteur à saisir un code qui est une manip contraignante alors que l'on peut faire la manip pour lui.
Exemple :

On génère une clé :
Code:
$my_array = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
$var_cles ='';
for ($i=0; $i<=6; $i++) { // 6 si vous voulez une clé à 6 chiffres
  $random = array_rand($my_array);                   
  $var_cles .= $my_array[$random];
}

On inititalise une variable session avec comme valeur cette clé :
Code:
$_SESSION[verif]=$var_cles;

Puis on place un champ hidden dans le formulaire avec comme valeur la clés :
Code:
<input type="hidden" name="verif" value="<?php echo $var_cles; ?>">


Sur la page suivante, il suffit de vérifier que la variable SESSION soit identique à la variable du champ hidden.
Comme la variable ne peut être modifiée que par script, si elle ne sont pas identique c'est que le formulaire vient d'un autre serveur.

Me trompe-je ?
 
lbache
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1107
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mar Nov 04, 2008 17:02    Sujet du message: securiser un formulaire avec mot a retaper

Y'a aussi des robots qui remplissent les formulaires, donc là ta protection ne fonctionne pas.
 
Bacteries Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort