Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2006, 13h54   #1
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Par défaut [Sécurité] Dispositif anti-spam en PHP ?

Bonjour.

J'utilise un script php/mysql pour un livre d'or. Il fonctionne très bien, si ce n'est que je suis horripilé par les spams ! Comme je suppose que les malfaisants ne s'amusent pas à remplir à chaque fois les champs des messages (que j'efface au fur et à mesure), il doivent utiliser un "logiciel" (dont j'ignore le nom et comment il fonctionne) pour poster leur saloperie à intervalles réguliers, un peu comme les spameurs de forums phpbb.
Sur ces forums, il existe un dispositif qui consiste à recopier obligatoirement des caractères pas très lisibles sur une image aléatoire avant de s'inscrire. Y a-t-il un moyen d'adapter ça sur un livre d'or, ou sinon, que me proposez-vous d'autre ?

Merci.
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 14h03   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Tu trouveras des infos sur le CAPTCHA
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 14h34   #3
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
ou sinon tu poses une question/devinette avant l'insertion sur ton livre d'or

du genre: couleur du poisson rouge?

et tu compares avec ta réponse

si ok alors inertion si not ok alors pas d'insertion
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 17h37   #4
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Pour avoir eu exactement le même problème, ce que j'ai fait, c'est générer un ptit mot de passe à chaque affichage de page, que je passe en input hidden.
J'ai également un champ "validation" ou le gars qui veut laisser un message doit recopier le mot de passe.

Au moment de l'insertion dans le livre, je compare l'input hidden et le champ "validation", et si c'est pas les même, j'affiche un ptit message "le spam c'est mal !".

C'est pas bien compliqué, et depuis, je n'ai plus de message de spam ^_^

--
Rakken
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 18h36   #5
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
Je rejoins l'idee de mussara

tu poses un calcule simple, du style

combien font deux plus un ?

ca t'evite de te casser la tete avec la generation d'image.
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 12h03   #6
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Rakken
Ca a l'air bien ton truc ! Tu pourrais mettre la portion de code ?
Mais j'espère que c'est pas du JavaScript, parce qu'il suffit de désactiver l'option pour passer outre. J'ai déjà ce problème en obligeant les signataires à remplir au moins les champs "pseudo" et "message" et je me retrouve de temps en temps avec des commentaires vides...
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 17h04   #7
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Allez, j'suis de bonne humeur aujourd'hui ;-))

Code :
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
 
<?
function randomkeys($length)
{
  $pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
  for($i=0;$i<$length;$i++)
  {
   if(isset($key))
     $key .= $pattern{rand(0,35)};
   else
     $key = $pattern{rand(0,35)};
  }
  return $key;
}
 
// (...) récupération de tes infos pour le livre d'or
 
if (isset($_POST['spam_field'])) $spam_field = $_POST['spam_field']; else $spam_field = '';
if (isset($_POST['spam_field_protect'])) $spam_field_protect = $_POST['spam_field_protect']; else $spam_field_protect = '';
 
if ($spam_field == $spam_field_protect) {
 
    // (...) Enregistrement de ton message dans le livre d'or.
 
} else {
    $anti_spam_text = "Les spammeurs sont des crétins finis.<br>";
}
 
$anti_spam = randomkeys(5);
 
?>
 
 
 
Pour postez entrez "<? echo $anti_spam ?>" dans le champ de protection anti-spam.
<form name="livre" method="post" action="livre.php">
<input type="hidden" name="spam_field_protect" value="<? echo $anti_spam ?>">
 
<? /* (...) Affichage du formulaire pour le livre d'or */ ?>
Protection anti-spam : <input name="spam_field" type="text" size="20" maxlength="30">
<input name="submit" type="submit" value="envoyer">
</form>
 
<? /* (...) Affichage du livre d'or */ ?>
T'as plus qu'a integrer ce code là a ton propre livre d'or.
C'est un peu plus chiant a passer pour un robot automatique de spam qu'un champ supplémentaire qui doit avoir une valeur précise mais si quelqu'un veut vraiment te spammer toi, c'est pas ce code là qui va le retenir très longtemps. Si les spams continuent, ll faudra remplacer par des images générée comme le suggerait guitou, mais bon, faudrait vraiment que le spammeur t'en veuille.

Voila, amuse toi bien ;-)
--
Rakken

ps : J'ai taillé dans mon code pour ne te donner que les parties interessantes pour toi, je n'ai pas tester plus que ca, tu devras peut-être adapter un peu ^^
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 17h48   #8
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Je te remercie, mais je dois avoir merdé quelque part car ça ne fonctionne pas (bien que je n'ai aucun message d'erreur).

Voici ma page complète (épurée des tableaux) ; pendant que je bidouille, si tu as le temps d'y jeter un oeil et de trouver l'erreur. Ca doit venir du onSubmitdu formulaire, mais je ne sais pas comment faire.

Code :
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<script>
function test_form(expediteurID, messageID)
{
	if(expediteurID.value=="")
		{
			alert('Vous devez saisir votre nom !')
       		expediteurID.focus();return false
		}
	if(messageID.value=="")
   		{
			alert('Vous devez saisir un message !')
       		messageID.focus();return false 
		}
	return true
}
</script>
 
					<td height="30" width="680" colspan="3">
						<?
						include ("connexion.php");
						if($test=="ok")
						{
						$Date  = date("Y/m/d h:i:s");
						$query = "INSERT INTO phpbb_livre(codelivre, message, expediteur, email, site, age, ville, date)";
						$query .= "VALUES('', '$messageID', '$expediteurID', '$emailID', '$siteID', '$ageID', '$villeID', '$Date')"; 
						$result = mysql_query($query);
						?>
					Votre message a &eacute;t&eacute; enregistr&eacute;
 
					<a href="page_livre.php"><b>Lire les messages</a>
 
						<? 
 						}
						if ($test!="ok")
						{
						?>
						<div align="center" class="text_title">Signer le livre d'or</div></td>
 
					<td height="30" width="680" colspan="3"><img src="images/line_03.png" width="680" height="15"></td>
 
						<?
						function randomkeys($length)
						{
 						$pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
  						for($i=0;$i<$length;$i++)
  						{
   						if(isset($key))
     						$key .= $pattern{rand(0,35)};
   						else
     						$key = $pattern{rand(0,35)};
  						}
  						return $key;
						}
 
						// Récupération des infos pour le livre d'or
						if (isset($_POST['spam_field'])) $spam_field = $_POST['spam_field']; else $spam_field = '';
						if (isset($_POST['spam_field_protect'])) $spam_field_protect = $_POST['spam_field_protect']; else $spam_field_protect = '';
 
						if ($spam_field == $spam_field_protect) {
 
						// Enregistrement du message dans le livre d'or
						} else {
    						$anti_spam_text = "Pas de SPAM ici !<br>";
						}
 
						$anti_spam = randomkeys(5);
						?>
 
						Pour valider votre commentaire, saisissez <b><? echo $anti_spam ?></b> dans le champ "Anti-Spam".
 
						<form name="livre" method="post" onSubmit="return test_form(this.expediteurID, this.messageID)" action="page_livre_form.php?test=ok">
 
									<input type="hidden" name="spam_field_protect" value="<? echo $anti_spam ?>">
 
									<input type="text" name="expediteurID" size="47" maxlength="50">
									<input type="text" name="emailID" size="47" maxlength="50">
									<input type="text" name="siteID" size="47" maxlength="50">
									<input name="ageID" type="text" size="2" maxlength="2">
									<input type="text" name="villeID" size="47" maxlength="50">
									<textarea name="messageID" cols="35" rows="7"></textarea>
 
									<? /* (...) Affichage du formulaire pour le livre d'or */ ?>
									Anti-Spam : <input name="spam_field" type="text" size="20" maxlength="30">
									<input type="submit" name="submit" value="Envoyer"></div></td>
						</form>
						<? /* (...) Affichage du livre d'or */ ?>
<?
}
mysql_close();
?>
</body>
</html>
Quelle est l'utilité de ces deux portions ?

Code :
<? /* (...) Affichage du formulaire pour le livre d'or */ ?>
Code :
<? /* (...) Affichage du livre d'or */ ?>
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 02h44   #9
Débutant
 
Homme Samuel M. K. FOLI-AWLI
Inscription : avril 2003
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme Samuel M. K. FOLI-AWLI
Localisation : Togo

Informations forums :
Inscription : avril 2003
Messages : 50
Points : 43
Points : 43
Salut

1- Avant la ligne 21 il faut récupérer la valeur test transmis par GET :
Code :
1
2
3
 
// Initialise $test a "" si le formulaire n'est pas encore envoyé
$test = (isset($_GET['test'])?$_GET['test']:"";
2- Proposiitions d'explication:

Code :
1
2
3
4
5
 
// Affiche le formulaire d'ajout comme son nom l'indique
<? /* (...) Affichage du formulaire pour le livre d'or */ ?>
/* Affiche les messages du livre d'or avec le dernier ajouté bien evidemment et donc tu auras et le formulaire et les messages sur la même page */
<? /* (...) Affichage du livre d'or */ ?>
J'espere t'avoir été utile
fofovi72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 10h16   #10
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Fovi72 a tout dis, j'crois bien que je n'ai rien a rajouter ^_^

--
Rakken
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 11h15   #11
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Merci pour ces précisions ! Malheureusement, je ne peux pas voir si ça fonctionne ; hébergé chez Free, ce matin, je n'arrive pas à me connecter au FTP.

Néanmoins, je reste perplexe quant aux deux lignes. Je m'explique...

Mon livre d'or est en deux parties :

- page_livre.php : où figurent les messages.
- page_livre_form.php : le formulaire de saisie.

A partir du site, quand on clique sur le lien du livre, on arrive sur page_livre.php. Un clic sur Signer le livre d'or et on est redirigé vers le formulaire.
Après avoir saisi le message et validé, la redirection s'effectue sur une page "épurée" qui indique que le message a été enregistré. Un clic sur Lire les messages et on se retrouve sur le livre proprement dit, où l'on peut lire le message que l'on vient d'écrire.
Voilà pourquoi je doute de l'utilité de ces deux lignes...
Je précise que ce n'est pas moi qui ai conçu ce livre (je ne suis pas assez calé pour ça !), je me suis contenté de le récupérer, de l'enrichir et de l'adapter.

Autre problème : le code JavaScript inopérant si le visiteur n'a pas activé l'option dans son navigateur. Je me retrouve avec pas mal de messages vides. Ce qui fait que j'aimerais bien supprimer le code correspondant, mais ça déconne dans l'enregistrement des messages : sans ce code, ils sont enregistrés deux fois !
Donc, si il y a moyen d'insérer un code en PHP tel l'anti-spam, je suis preneur. Dans l'idéal, pour qu'un message soit enregistré, il faut qu'il y ait au moins un nom de saisi, un message et la recopie exacte des caractères aléatoires générés. Pas facile pour moi...

Je mettrai un lien direct dès que le serveur répondra pour que vous y voyiez plus clair.

Merci encore...
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 11h49   #12
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Dans mon livre d'or, j'avais mon formulaire pour enregistrer les messages sur la même page que l'affichage des des messages. (Bref, un seul fichier pour mon livre d'or).
Les deux lignes de commentaire correspondent à l'endroit ou initialement j'avais mon code pour afficher le formulaire de saisie et l'affichage de mes messages.
Ces lignes n'étaient là qu'a titre informatif, et dans la mesure ou c'est des commentaires, elle n'ont évidement aucune influence sur le code en lui même, bref, tu peux allègrement les supprimer.

Maintenant, si tu veux être sur qu'il y ait un message, tu peux modifier la ligne :

Code :
if ($spam_field == $spam_field_protect)
par
Code :
if ($spam_field == $spam_field_protect && !empty($messageID) && !empty($expediteurID))
Et voila ;-)
--
Rakken
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 15h43   #13
Expert Confirmé
 
Inscription : avril 2002
Messages : 3 339
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2002
Messages : 3 339
Points : 3 355
Points : 3 355
Pour faire beaucoup plus simple.....

Etant donné que les robots sont programmés pour attaquer un type de livre d'or bien précis, si tu renomme la pages qui permet de saisir un message (genre new_message.php en new_message_secure.php) et que tu change les références à cette page dans tout les autres scripts, les robots auront des erreurs 404 et les "programmeurs" ne risque pas de changer leur robots pour 1 seul site.

C'est ce que nous avions fait sur le phpBB developpez.com à l'époque et ça avait reglé le problème.
Admin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 09h54   #14
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Eh bien ça ne fonctionne pas ! Qu'on laisse les champs vides ou non, les messages s'enregistrent... et deux fois !
Peut-être Rakken pourrais-tu me proposer le code de ton livre, en une seule page ? En attendant, voici les miens :

page_livre.php

Code :
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
56
57
58
59
60
61
62
63
64
<html>
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
</head>
 
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="680" align="center" border="0" cellspacing="0" cellpadding="0" bgcolor="#F7F2E1">
	<tr>
		<td height="60" colspan="3"><div align="center"><b>LIVRE D'OR</b></div></td>
	</tr>
	<tr>
		<td height="30" colspan="3">
			<? 
			include("connexion.php");
 			$sql = mysql_query("select count(*) from livre");
 			$total = @mysql_fetch_array($sql);
			$resder = $total[0];
			$sql = mysql_query("select * from livre order by date desc");
			?>
		<div align="center"><b><a href="page_livre_form.php">Signer le livre d'or</a></b></div></td>
	</tr>	
	<tr>	
		<td height="15" colspan="3"><hr></td>
	</tr>
	<tr>
		<td height="30" colspan="3"><div align="center">Messages : <b><? echo $resder; ?></b>
			<?
			while($valeurlud = @mysql_fetch_array($sql))
			{
			$date=date("d/m/Y à H:i:s", strtotime($valeurlud["date"]));
			?>
		</div></td>
	</tr>	
	<tr>		
		<td height="15" colspan="3"><hr></td>
	</tr>	
	<tr>	
		<td width="15"></td>
		<td width="650"><div align="center">
			<b><? echo $valeurlud["expediteur"]; ?></b> <? echo '<a href="mailto:' . $valeurlud["email"] . '">' . $valeurlud["email"] . '</a>'; ?> <? echo '<a href="' . $valeurlud["site"] . '">' . $valeurlud["site"] . '</a>'; ?>																																									
			<br>
			<? echo $valeurlud["age"]; ?> ans, de <? echo $valeurlud["ville"]; ?>
			<br>
			[ a &eacute;crit le <? echo $date; ?> ]
			<br>
			<? echo $valeurlud["message"]; ?>
		</div></td>
		<?
		}
		?>
 
		<?
		mysql_close();
		?>
		<td width="15"></td>
	</tr>	
	<tr>		
		<td height="30" colspan="3"><hr></td>
	</tr>
</table>
</body>
</html>
page_livre_form.php

Code :
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<html>
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
</head>
 
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="680" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#F7F2E1">
	<tr>
		<td height="60">
			<?
			include ("connexion.php");
			{
			$Date  = date("Y/m/d h:i:s");
			$query = "INSERT INTO livre(codelivre, message, expediteur, email, site, age, ville, date)";
			$query .= "VALUES('', '$messageID', '$expediteurID', '$emailID', '$siteID', '$ageID', '$villeID', '$Date')"; 
			$result = mysql_query($query);
			?>
			<div align="center"><b>LIVRE D'OR</b></div></td>
	</tr>
	<tr>
		<td height="30"><div align="center"><b>Votre message a &eacute;t&eacute; enregistr&eacute;</b></div></td>
	</tr>
	<tr>
		<td height="30"><div align="center"><a href="page_livre.php"><b>Lire les messages</b></a></div></td>
	</tr>
	<tr>
		<td height="30">
		<div align="center">Signer le livre d'or</div></td>
	</tr>
	<tr>
		<td height="30"><hr></td>
	</tr>
		<?
		function randomkeys($length)
		{
 		$pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
 		for($i=0;$i<$length;$i++)
  			{
			if(isset($key))
     			$key .= $pattern{rand(0,35)};
   			else
     			$key = $pattern{rand(0,35)};
  			}
  		return $key;
		}
 
		if (isset($_POST['spam_field'])) $spam_field = $_POST['spam_field']; else $spam_field = '';
		if (isset($_POST['spam_field_protect'])) $spam_field_protect = $_POST['spam_field_protect']; else $spam_field_protect = '';
		if ($spam_field == $spam_field_protect && !empty($messageID) && !empty($expediteurID))
		{
		}
		else
		{
 		$anti_spam_text = "Pas de SPAM ici !";
		}
		$anti_spam = randomkeys(5);
		?>
	<tr>
		<td height="30"><div align="center">Avant de valider votre message, saisissez <b><? echo $anti_spam ?></b> dans le champ "Anti-Spam".</div></td>
	</tr>
	<tr>
		<td height="30">
			<form name="livre" method="post" action="page_livre_form.php">
				<table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
					<input type="hidden" name="spam_field_protect" value="<? echo $anti_spam ?>">
					<tr>
						<td height="15" colspan="2"></td>
					</tr>
					<tr>		
						<td width="180" height="35" valign="top">Votre nom</td>
						<td width="470" height="35" valign="top"><input type="text" name="expediteurID" size="47" maxlength="50"></td>
					</tr>
					<tr>	
						<td width="180" height="35" valign="top">Votre adresse email</td>
						<td width="470" height="35" valign="top"><input type="text" name="emailID" size="47" maxlength="50"></td>
					</tr>
					<tr>	
						<td width="180" height="35" valign="top">Votre site</td>
						<td width="470" height="35" valign="top"><input type="text" name="siteID" size="47" maxlength="50"></td>
					</tr>
					<tr>	
						<td width="180" height="35" valign="top">Votre &acirc;ge</td>
						<td width="470" height="35" valign="top"><input type="text" name="ageID" size="2" maxlength="2"></td>
					</tr>
					<tr>	
						<td width="180" height="35" valign="top">Votre ville</td>
						<td width="470" height="35" valign="top"><input type="text" name="villeID" size="47" maxlength="50"></td>
					</tr>
					<tr>	
						<td width="180" height="150" valign="top">Votre message</td>
						<td width="470" height="150" valign="top"><textarea name="messageID" cols="35" rows="7"></textarea></td>
					</tr>
					<tr>	
						<td width="180" height="35" valign="top">Anti-Spam</td>
						<td width="470" height="35" valign="top"><input name="spam_field" type="text" size="47" maxlength="30"></td>
					</tr>
					<tr>	
						<td height="30" colspan="2"><div align="center"><input type="submit" name="submit" value="Signer"></div></td>
					</tr>
				</table>
			</form>
		</td>
	</tr>
</table>	
<?
}
mysql_close();
?>
</body>
</html>
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 10h10   #15
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
pourquoi ne recherches tu pas la facilité, comme te l'ont dit plusieurs personnes sur ce post?
et la dernière solution de Gaël Donat te résoud tout tes pbs en un seul coup et tu n'as même pas besoin de changer quoi que ce soit dans tes pages (sauf les noms de fichiers modifiés bien entendu).

ou alors j'en reviens à mon test sur une question avec réponse demandée qui t'aiguille soit vers l'envoi du post soit vers un message comme quoi interdit aux spammeurs
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 11h03   #16
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Mussara
Je n'ai aucune idée des moyens employés par les spammers pour envoyer leur merde. Mais je gage que si je renomme mes pages, il ne se passera pas bien longtemps avant qu'elles ne soient spammées à nouveau, non ?
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 11h10   #17
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
a ton avis comment fait un robot pour spammer un livre d'or ou un forum?

il ne va pas aller spammer le forum qui aura été écrit à la mimine, il spamme les forums qui ont pignon sur rue au niveau développements: PHPBB et autres

et comme le code est connu de tous (puisqu'on est dans le domaine du GNU), il est "facile" d'écrire une procédure qui va aller mettre des messages intempestifs...
ne crois pas qu'il y a quelqu'un qui physiquement va aller sur ton livre d'or, trouver ta page pour écrire un message, cliquer à tel et tel endroit pour envoyer le message. c'est une proécdure automatique qui s'affranchit de tout cela, le spammer ne va pa aller sur ta page "en vrai"...

du coup ce que t'as proposé Gaël Donat est une excellente solution, car le spam envoyé n'aboutira nulle part vu que tu auras renommé tes pages... du coup le robot sera perdu...
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 11h24   #18
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Ca, je me doute bien que ce n'est pas un type qui passe son temps à naviguer entre les sites et qui poste ses messages à la main. Mais étant novice, je n'ai aucune idée de la technique employée pour automatiser la procédure : est-ce un logiciel, un code maison ? Bref, je vais renommer mes pages et on verra bien...

Mais il y a quand même un autre problème qui n'a rien à voir avec le spam : le code JavaScript caduque si l'on désactive l'option dans le navigateur et qui n'empêche pas l'enregistrement de messages vides. Où puis-je en trouver un en PHP ? Parce que sur ce forum, j'ai déjà posé la question, je n'ai jamais eu de réponse...
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 11h52   #19
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
en php
si la réponse est égale à "" (rien) alors le message n'est pas mis en ligne
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 10h07   #20
Nouveau Membre du Club
 
Avatar de Nerva
 
Inscription : juin 2004
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juin 2004
Messages : 179
Points : 32
Points : 32
Envoyer un message via Skype™ à Nerva
Bon, j'ai renommé les pages du livre d'or et ça fait trois jours que je n'ai plus le moindre SPAM.
Par contre, pour le code PHP qui interdit l'enregistrement des messages vides, je ne sais pas comment faire...
Nerva est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h20.


 
 
 
 
Partenaires

Hébergement Web