Spam en provenance de mon formulaire en ligne

Nouveau WRInaute
Bonjour,
Je reçois des emails bidons à partir de mon formulaire en ligne avec tous les champs vides et une adresse non spécifiée.
Que pourrais je faire pour palier ce problème??
Meri 1001 fois
 
Nouveau WRInaute
Merci pour la réponse rapide
j'ai déjà inserer le code suivant qui m'a permis de limiter lenombre de spam sur mon email, mais il ne m a pas permis de résoudre le problème des email avec les champs de formulaire vides:
voici le code

$from=$_POST["sender"];
if (eregi("\r",$from) || eregi("\n",$from)){
die("Why ?? :(");

Merci
 
WRInaute impliqué
un controle en JS sur le formulaire pour detecter les champs lors de l'envois, si le champ et vide ou non valide ... on envoit pas
 
Nouveau WRInaute
Essaye avec une fonction javascript pour voir si ton formulaire et vide ou non, si il est vide impossible de l'envoyer :

Fonction du style :

function verifuser() {

var i;
for(i = 0; i < document.newuser.elements.length; i++) {
if(document.newuser.elements.value == '') {
window.alert("Vous devez remplir tous les champs du formulaire !");
return false;
}
}
return true;
}

Cette fonction peut s'ameliorer je pense mais c'est déjà une base :)
 
WRInaute accro
Le mieux c'est encore de vérifier en code, et pas en javascript. Lorsque le formulaire est validé, tu testes les valeurs, et si quelque chose cloche (tous les champs sont vides ou adresse email incorrectement formatée), tu n'envoie pas le mail.
 
WRInaute impliqué
Dans ce cas la il faut renvoyer sur le formulaire avec une message d'erreur afin que ceux qui n'ont "pas fait attention" puissent recommencer ....
 
Nouveau WRInaute
En fait le problème provient d'un programme automatique qui cherche tous les formulaires sur le net "non sécurisés biensur" et execute la requête de l'envoi sans rien remplir.
Je crois que la proposition de contrôle de tous les champs sera la mieu adaptée dans ce genre de problème.
Est ce que je prend le code suivant tel quel est et je l'injecte où SVP?
Fonction du style :

function verifuser() {

var i;
for(i = 0; i < document.newuser.elements.length; i++) {
if(document.newuser.elements.value == '') {
window.alert("Vous devez remplir tous les champs du formulaire !");
return false;
}
}
return true;
}
 
WRInaute passionné
Hier, j'ai eu un probleme de spam sur le formulaire de proposition de categorie sur mon annuaire kimkiou.com et tous les champs étaient remplies avec des emails bidon : n'importe quoi @kimkiou.com. J'au suspendu le form par securité
 
WRInaute accro
deleter23 a dit:
Hier, j'ai eu un probleme de spam sur le formulaire de proposition de categorie sur mon annuaire kimkiou.com et tous les champs étaient remplies avec des emails bidon : n'importe quoi @kimkiou.com. J'au suspendu le form par securité
J'ai eu ça l y a quelques jours sur un de mes sites. Avant je vérifiais que les champs n'étaient pas vide et je nettoyais le cas échéant l'email et le contenu du code "spammeur". Maintenant, je vérifie correctement tous les champs et renvois sur le formulaire les contenus épurés jusqu'à que tout soit ok (pas de @ et autres caractères dans le nom, ...) voir un thread d'il y a quelques jours.
 
WRInaute occasionnel
N'utilisez pas de javascript, ca ne servira à rien, n'imaginez pas qu'il y a un mec qui s'amuse à venir sur votre site...

C'est un spam très simple, on récupère le action du formulaire, et on poste directement en php, sans passer par le formulaire...

Plusieurs techniques :
1) vérifier en php les entrées du formulaire du genre que tous les champs sont remplis, et que le commentaire ne comprend pas 10 url différentes... Voire meme empecher de mettre une URL dans le champ commentaire...

2) Utiliser des images de vérification, en utilisant les sessions

3) être plus rusé que le spammeur : garder son IP, s'amuser avec, ...
 
WRInaute accro
dans le script php du formulaire

Code:
if (good_name($nom) && isEmail($email) && good_content($commentaire))
{
mettre ici l'envoi du mel}
else
if (($nom.$email.$commentaire!="") && (!good_name($nom) || !isEmail($email) || !good_content($commentaire)))
  echo "<h2>Erreur dans la saisie</h2>\n<p>Veuillez renseigner correctement les champs suivants : <br />".
  "<span class=\"rouge\">".(!good_name($nom)?"nom ":"").
  (!isEmail($email)?"email ":"").(!good_content($commentaire)?"commentaire":"")."</span></p>";
Les fonctions :
Code:
function good_name($name){
return (strlen($name)>0 && !eregi("@|,|;",$name)&& !isHack($name));
}

function isHack($Xstring) {
return eregi(
   "from:|subject:|bcc:|To:|CC:|mime-version:|base64|content-type:|content-transfer-encoding:|content-disposition:|
   content-location:|include|<script|'</script|javascript|embed|iframe|refresh|onload|onstart|onerror|
   onkey|onmouse|document\.cookie|jscript|vbscript|pearlscript|'‘|’|“|”|&#'i|
   <style|<body|<object|<\?php|<\?|\?\>|<\%|\%\>", $Xstring);
}

function good_content($name){
return (strlen($name)>0 && !isHack($name));
}
 
Nouveau WRInaute
... comment faire pour vérifier 2 champs email dans un formulaire de recommandation ?

J'ai actuellement 2 variables :
$De
$Pour

et le code vérif :

if(empty($Nada) &&
eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$De))
{
$ok = TRUE;
}

Comment vérifier également la $Pour ?

thanks for help ;)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut