Formulaire + SPAM

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 : Formulaire + SPAM

Re: Formulaire + SPAM

par xTG » 18 oct. 2014, 07:22

Ce n'est pas une question de code mais de protection de champs.
Donc de traitement des variables avant de les afficher.
Relis bien ce que tu as trouvé car à priori tu n'as pas compris ce que cela faisait... :|

Tu as X variables de données, tu as donc X variables à protéger.

Re: Formulaire + SPAM

par wurm1 » 17 oct. 2014, 17:29

Personne pour m'aider ? Please ! :priere:

Re: Formulaire + SPAM

par wurm1 » 06 oct. 2014, 10:07

Bonjour,

ok pour les tutoriels cependant aucun code ne ressemble au mien et étant débutant je ne sais pas l'adapter :?

Re: Formulaire + SPAM

par ynx » 03 oct. 2014, 15:33

Salut,

Renseigne-toi sur les failles CSRF (Cross Site Request Forgeries). Tu peux trouver plusieurs tutoriels d'implémentations en php via ton moteur de recherche préféré pour te protéger contre ce type de faille.

Bonne journée

Formulaire + SPAM

par wurm1 » 03 oct. 2014, 09:55

Bonjour à tous.
Depuis quelques jours je reçois des spams à gogo par des robots spammeurs. J'aimerais éviter cela sans avoir besoin de mettre en place un captcha. J'ai lu sur divers articles sur le web qu'il est possible de mettre en place un champ texte supplémentaire, de le rendre invisible avec du CSS, et surtout, de le faire analyser, grâce au PHP, avant l'envoi final. Si ce champ reste vide, on estime qu'on a pas à faire à un bot, et on valide définitivement l'envoi. Si, au contraire, ce champ texte contient quelque chose, l'envoi n'est alors pas pris en compte.

Est-ce possible ?
Si oui, comment ?

P.S: je suis novice en php.

Voici l'index de ma page:
<!-------------- PHP FORMULAIRE --------------->    
<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']) and isset($_POST['name']))
{
        $destinataire = ***@***.fr';
        $email = htmlentities($_POST['email']);
        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
        {
                $sujet = 'Flash Instal: '.stripslashes($_POST['sujet']);
				$name = stripslashes($_POST['name']);
				$message = "$name vous contacte via le formulaire ****.\n\n\n Message : \n\n" .stripslashes($_POST['message']);
                $headers = "From: <".$email.">\n";
                $headers .= "Reply-To: ".$email."\n";
                $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
                if(mail($destinataire,$sujet,$message,$headers))
                {
                        echo "<script>alert(\"Votre message a bien été envoyé. Nous répondrons à votre demande dans les plus brefs délais.\")</script>
						<form id=\"start\" action=\"\" method=\"post\">
	<h1 id=\"form\">Contactez **** !</h1>
	<table width=\"700\" border=\"0\">
  <tr>
    <td>	<p><label for=\"name\">Votre Nom</label>
		<input id=\"name\" type=\"text\" name=\"name\" />
	</p>
	<p>
		<label for=\"email\">Votre Email</label>
		<input id=\"email\" type=\"text\" name=\"email\" />
	</p>
    <p>
		<label for=\"sujet\">Sujet du message</label>
		<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
	</p>
    </td>
    <td> 
    <p id=\"mess\">Votre Message <br /> 
		<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
	</p>
	<p>
		<input type=\"submit\" value=\"Envoyer\" />
	</p>
        </td>
  </tr>
</table>
	
	</form>";
                }
                else
                {
                        echo "<script>alert(\"Une erreur c'est produite lors de l'envoi du message.\")</script>
						<form id=\"start\" action=\"\" method=\"post\">
	<h1 id=\"form\">*** !</h1>
	<table width=\"700\" border=\"0\">
  <tr>
    <td>	<p><label for=\"name\">Votre Nom</label>
		<input id=\"name\" type=\"text\" name=\"name\" />
	</p>
	<p>
		<label for=\"email\">Votre Email</label>
		<input id=\"email\" type=\"text\" name=\"email\" />
	</p>
    <p>
		<label for=\"sujet\">Sujet du message</label>
		<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
	</p>
    </td>
    <td> 
    <p id=\"mess\">Votre Message <br /> 
		<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
	</p>
	<p>
		<input type=\"submit\" value=\"Envoyer\" />
	</p>
        </td>
  </tr>
</table>
	
	</form>";
                }
        }
        else
        {
                echo "<script>alert(\"Le formulaire est incomplet.\")</script>
				<form id=\"start\" action=\"\" method=\"post\">
	<h1 id=\"form\">**** !</h1>
	<table width=\"700\" border=\"0\">
  <tr>
    <td>	<p><label for=\"name\">Votre Nom</label>
		<input id=\"name\" type=\"text\" name=\"name\" />
	</p>
	<p>
		<label for=\"email\">Votre Email</label>
		<input id=\"email\" type=\"text\" name=\"email\" />
	</p>
    <p>
		<label for=\"sujet\">Sujet du message</label>
		<input id=\"sujet\" type=\"text\" name=\"sujet_\" />
	</p>
    </td>
    <td> 
    <p id=\"mess\">Votre Message <br /> 
		<textarea name=\"message\" cols=\"25\" rows=\"5\" id=\"textarea\"></textarea><br />
	</p>
	<p>
		<input type=\"submit\" value=\"Envoyer\" />
	</p>
        </td>
  </tr>
</table>
	
	</form>";
        }
}
else
{
?>
<!----------------------------------------------->


<!---------------- FORMULAIRE ----------------->
<form id="start" action="" method="post">
	<a name="contact" style="color:#fff;"></a><h1 id="form">Contactez rapidement **** ! &nbsp; &diams; &nbsp;<a href="contact.php"  style="color:#dce7d6;"><strong>Plus d'infos, coordonnées, rayon d'action... sur la page Contact</strong></a></h1>
	<table width="700" border="0">
  <tr>
    <td>	<p><label for="name">Votre Nom</label>
		<input id="name" type="text" name="name" />
	</p>
	<p>
		<label for="email">Votre Email</label>
		<input id="email" type="text" name="email" />
	</p>
    <p>
		<label for="sujet">Sujet du message</label>
		<input id="sujet" type="text" name="sujet" />
	</p>
    </td>
    <td> 
    <p id="mess">Votre Message <br /> 
		<textarea name="message" cols="25" rows="5" id="textarea">***.</textarea><br />
	</p>
	<p>
		<input type="submit" value="Envoyer" />
	</p>
        </td>

  </tr>
</table>
	
	</form>
<?php
}
?>
</li>
<!----------------------------------------------->
Merci d'avance.