Exclure un nom de domaine mail dans mon formulaire

Résolu/Fermé
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 - Modifié par zephir94 le 8/03/2014 à 11:30
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 - 11 mars 2014 à 14:42
Bonjour,

Etant spammé sur mon livre d'or j'ai été obligé de mettre en place au fur et à mesure certaines protections captcha, case à cocher et dernièrement un pot de miel.
il me reste un bot qui arrive malgré tout arrive encore à poster en utilisant comme mail de contact mon nom de domaine en changeant le début, par exemple tomy@monnom.fr, ded@monnom.fr....

j'ai commencé par écrire,
<?php
if($_POST['mail'] != ""){
die('bot!');
}
else{

}
?>

je n'arrive pas à donner comme instruction xxx@monnom.fr
car pour l'instant, je test uniquement si le champ mail est vide !

et si je recherche,

<?php
if($_POST['mail'] != @monnom.fr){
die('bot!');
}
else{

}
?>

il ne recherche que @monnom.fr sans prendre en compte ce qui est devant de façon aléatoire !

comment écrire quelque soit xxx @monnom.Fr ?

Merci par avance à ceux ou celles qui pourront m'aider

13 réponses

zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
Modifié par zephir94 le 8/03/2014 à 13:41
Bonjour Hack_net

Le robot post en utilisant toujours un mail du type @monnom.fr et fait varier ce qui est devant didier55@monnom.fr, zara51@monom.fr...
je cherche donc à repérer dans mon champ mail, si c'est présent à bloquer l'envoi
j'ai donc essayé d'écrire

<?php
if($_POST['mail'] != "@monnom.fr"){
die('bot!');
}
else{

}
?>


mais si il y a des choses d'écrites devant il ne les prend pas en compte ! donc je cherche à gérer quelque soit ce qui est écrit devant @monnom.fr
Merci à toi
1
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
8 mars 2014 à 14:01
Tu as lu mon message ?! Je t'ai donné la solution à implémenter
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
Modifié par hack_net le 8/03/2014 à 13:00
Euh... tu dis :
"il ne recherche que @monnom.fr sans prendre en compte ce qui est devant de façon aléatoire !" et juste après : "comment écrire quelque soit xxx @monnom.Fr ? " faudrait savoir ! Tu veux quoi exactement ? Bloquer un nom de domaine mail ou un utilisateur ?

L'éducation par l'apprentissage nous sert à abdiquer nos idées primitives ancrées dans l'animal que nous sommes. Elle est primordiale et en aucun cas elle ne doit être secondée ou remplacée.
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
8 mars 2014 à 13:16
Salut,

Pour ta question, il suffirait simplement d'utiliser la fonction PHP stripos() https://www.php.net/manual/fr/function.stripos.php :)
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
Modifié par zephir94 le 8/03/2014 à 15:43
Merci à toi chico200987,

J'ai bien vue ta réponse mais je ne suis pas parvenu à l'adapter à mon cas malgré de nombreuses tentatives hélas !
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
Modifié par chico200987 le 8/03/2014 à 15:56
As-tu testé ceci :
<?php


$pos1 = stripos($_POST['mail'], "@monnom.fr");

if ($pos1 !== false) {
 die('bot!');
 }
 else{
...
 }
 ?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
8 mars 2014 à 19:55
Bonjour

Une solution:
- créer un champ "age" avec id "age'
- faire un CSS qui associé à l'id "#age" a comme caractéristique: display: none;

Donc, ce champ age ne devra pas s'afficher et rester vide.

Si le boot est assez stupide, il va remplir ce champ.

Donc, coté PHP, s'il y a quelque chose dans "age" vous faites comme si vous avez enregistré, sauf que vous jetez.

A+
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
Modifié par zephir94 le 8/03/2014 à 21:37
Merci à toi chico200987,

Sauf que cela bloque bien l'envois si effectivement xxx@monnom.fr mais dès lors que tu essayes juste après avec un mail valide il poste ceux bloqués plus le valide !!!
imaginons que je face deux essais avec @monnom.fr et un troisième valide, et bien j'ai en même temps les deux faux et le valide qui apparaissent j'espère être plus clair.
comme un effet mémoire !!!
je viens de voir en fait qu'il post aussi à la fermeture du navigateur aussi !

Merci mpmp93 mais j'ai déjà implanté ta solution
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
8 mars 2014 à 22:07
si le captcha ne fonctionne pas, utiliser une question aléatoire avec liste déroulante, exemple:

quel jour sommes nous? et dans la liste déroulante les jours de la semaine..... mais placés aléatoirement à chaque fois dans un ordre différent....

ET sl le boot passe ce test, c'est que le boot est pas un robot mais un être humain.... avec un PC.

Alors là, vous sortez l'artillerie lourde:
- faire un script en action-script pour flash player
- intégrer à la page une animation qui utilise le script action-script
- ce script écrit dans le cache de macromédia des données s'il n'y en a pas....
- parrallèlement action-script transmet au serveur le code qu'il a implanté dans le cache
- si le "rigolo" a injecté un spam, vous tagguez le code enregistré en BDD
- au prochain tour, lorsque le spammeur revient et ré-injecte un spam, vous laissez faire, mais au moment d'enregistrer, vous vérifiez si le script pour flash player a renvoyé un code déja inscrit auparavant
- si c'est le code du spammeur, vous lui dites: "message enregistré" et vous jetez le spam

Pourquoi un script pour flash-player? Parce que c'est la seule appli qui peut écrire ailleurs que dans les cookies. Le spammeur pourra changer d'adresse IP, vider le cache de navigation, vider les cookies, tant qu'il ne videra pas le cache macromedia, il sera tracé.

A+
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
Modifié par zephir94 le 8/03/2014 à 22:22
merci de ton aide mais j'ai déjà fait tout cela, j'ai même fait une addition aléatoire aussi !!!
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
8 mars 2014 à 22:36
alors arrêter le livre d'or.....

Ou alors détecter dans le livre d'or les messages contenant certains mots clés.....

Ou alors mettre en attente les messages et ne les rendre valide que après contrôle visuel....

A+
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
Modifié par zephir94 le 9/03/2014 à 09:49
Bonjour à tous,

Merci mpmp93 mais je préfère exploiter la solution proposée par chico200987,
normalement la fonction "die" doit arrêter le processus en cours et je n'arrive pas à comprendre pourquoi soit à la fermeture du navigateur ou soit en cas de post après essais, ce dernier permet l'envoi des messages !
As tu une idée sur cela chico200987 ?
Vider le cache des navigateurs en utilisant :
header('Pragma:nocache');
?
Merci par avance pour ta réponse
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
9 mars 2014 à 17:17
ou peut être,

<? Header("Cache-Control: no-store, no-cache, must-revalidate");
Header("Pragma: no-cache"); ?>
?
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
10 mars 2014 à 13:42
Salut,

Ton comportement est bizarre, hm as-tu essaye de vider tes variables ?

As-tu un code un peu plus complet a partager ? Ce comportement est peut-etre du a autre chose
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
11 mars 2014 à 08:06
Bonjour chico200987,

Voici le code complet de ma page,

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="description" CONTENT="">
<meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
<meta name="keywords" CONTENT="">
<head>
<title>Livre d'or</title>
<script src="jquery.js"></script>

<style type="text/css">
body {
background: #000000;
color: #000000;
font-family: Verdana ;
color:white;
font-size:14px;
}
</style>
<style type="text/css">
a:link
{
text-decoration:none;
border: none;
cursor: pointer;
outline-style:none;
}
a:hover
{
color:black;
border: none;
cursor: pointer;
text-decoration:none;
outline-style:none;
}
.submit
{
color:#ffffff;
font-family: 'monotype corsiva';
font-size: 18px;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #ffffff;
background:#000000;
}
.submit:hover
{
color:#000000;
font-family: 'monotype corsiva';
font-size: 18px;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #000000;
background:#ffffff;
}

button.css3button {
color:#ffffff;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #ffffff;
background:#000000;
}
button.css3button:hover {
color:#000000;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #000000;
background:#ffffff;
}

</style>
<style type="text/css">

div.grande
{

width : 70%;
}
p{
line-height:25px;
}
.box
{
padding: 20px;
background: #eeeeee;
border: 1px solid #FFFCFC;

border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}

</style>
<!--[if !IE]><!-->
<style type="text/css">
fieldset {

border:1px solid #FFFFFF;
border-radius:10px;
moz-border-radius:10px;
webkit-border-radius:10px;
padding-left:1px;
height:80px;
width:400px;
margin-bottom:1px;
}
</style>
<!--<![endif]-->
<style type="text/css">
#website {
visibility:hidden;
}
span {
border:1px solid red;
padding:3px;
}
legend {
color:white;
font-weight:bold
align = left;
}
</style>
<style type="text/css">
.text
{
background-color:white;
color:black;
cursor: URL()
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:20px;
width:180px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;


}

.text:hover
{
background-color:gold;
outline-style:none;
}
.text1
{
background-color:white;
color:black;
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:20px;
width:180px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;


}

.text1:hover
{
background-color:gold;
outline-style:none;
}
.text2
{
background-color:white;
color:black;
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:80px;
width:400px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;


}
.text3
{
background-color:white;
color:black;
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:2px;
width:180px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;


}
textarea{ resize:none;}
.text2:hover
{
outline-style:none;
background-color:gold;
}


</style>
<?php
if($_POST['website'] != ""){
die('Connard de bot!');
}
else{

}
?>

<?php
if(isset($_POST['nobot'])) {
// la case est cochée
}
?>



<script type="text/javascript">
var a = Math.ceil(Math.random() * 10);
var b = Math.ceil(Math.random() * 10);

var c = a + b
function DrawBotBoot()
{
document.write("Combien font "+ a + " + " + b +" ? ");
document.write("<input id='BotBootInput' type='text' maxlength='2' size='2'/>");
}
function ValidBotBoot(){
var d = document.getElementById('BotBootInput').value;
if (d == c) {
return true;
}
alert ('Le résultat est faux !');
return false;
}


</script>
<script type="text/javascript">

function verif(){
return document.getElementById(nom).value.length > 1;
}

</script>
<?php
preg_match('/[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{4,}/',$Message)
?>

<form method="post" action="writeguest.php"
onsubmit="return ValidBotBoot()&& verif()">
<br/><div align="center" style="line-height:30px" ><FONT FACE="gabriola" size="9" color="white">Fils de Saône </FONT><br/><FONT FACE="gabriola" size="6" color="white">Livre d'or </FONT></div>
<table border="0" align="center">
<tr><td><img src="test.jpg"></td><td>
<Div>
<table>
<tr><td><FONT FACE="monotype corsiva" size="1" color="black">website :</FONT></td>
<td><input type=text name=website id="website" class="text3" ></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Nom :</FONT></td>
<td><input type=text name="nom" id="nom" size=25 class="text"></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Mail :</FONT></td>
<td><input type=text name=mail size=25 class="text1"></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Message :</FONT></td><td colspan=1>
<textarea name=message style="overflow:auto " id="Message"rows=6 cols=47 class="text2"></textarea>

</td></tr>
</table>
</Div>
</td><td><img src="livre.jpg"></td></td></tr></table>

<script>


$(document).ready(function(){

$('<div style="text-align:center;"><input type="checkbox" name="nobot" required="true"> Je confirme ne pas être un robot</div>').prependTo($('#maDiv'));
});

</script>
<div align="center">
<fieldset>
<legend align="right"><FONT FACE="monotype corsiva" size="4" color="white"> Captcha Vérification</FONT></legend>
<div style="text-align:center;">
<div id="maDiv"></div>
</div>
<br/>
<div style="text-align:center;">
<script type="text/javascript">DrawBotBoot()</script>
</div>
</fieldset></div><br/>
<div style="text-align:center; padding: 4px 0;"><input border=0 type="submit" class="submit" style="width: 160px;" value="Envoyer le formulaire">
</div>
</form>
<div style="text-align:center;"><button border=0 type="button" class="css3button" style="width: 160px;"onclick="location.href='http://fils-de-saone.fr/index.php';" onMouseOver="window.status='';return true"><FONT FACE="monotype corsiva" size="4">Retourner au menu</FONT></div>
<div align="center" ><div class="grande" style="border:3px solid #000000; padding 1px;"><div style="text-align:left;"><FONT FACE="gabriola" size="6" color="white" >Vos impressions, commentaires:</FONT></div></div>
<div align="center" >
<div class="grande" style="border:3px solid #FFFFFF; padding 3px;"><div style="text-align:left;">
<?php include("guestbook.txt"); ?></div></div>

<br/>

Je te remercie à nouveau pour ton aide
Amicalement
zephir
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
Modifié par zephir94 le 11/03/2014 à 08:15
Avec bien sur le code que j'avais retiré

<?php


$pos1 = stripos($_POST['mail'], "@monnom.fr");

if ($pos1 !== false) {
die('bot!');
}
else{

}
?>

sachant que selon mes recherches la fonction die() devrait arrêter le processus et le post ne devrait pas être gardé en mémoire et posté en même tant que le suivant !
0
zephir94 Messages postés 26 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 11 mars 2014 2
11 mars 2014 à 13:54
J'ai trouvé,
La vérification doit s'effectuer dans mon fichier writeguest.php
avec mes variables
echo htmlspecialchars_decode(htmlentities($chaine, ENT_NOQUOTES, 'ISO-8859-1'));

$nom = htmlspecialchars(stripslashes($_POST['nom']));

$mail = htmlspecialchars(stripslashes($_POST['mail']));
$pos1 = stripos($_POST['mail'], "@fils-de-saone.fr");

if ($pos1 !== false) {
exit();
}
else{

}

$message = htmlspecialchars(stripslashes($_POST['message']));
je te remercie infiniment
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
11 mars 2014 à 14:42
Ah, parfait tu as pu résoudre ton problème, content d'avoir pu te mettre sur la piste, derien :)
0