Besoin de conseil, filtre anti-spammer

WRInaute discret
Bonjour,
En réaménageant mon site internet j'ai eu l'idée de mettre un piège à spammeur automatique ...
Le principe : je met sur toutes mes pages un formulaire (visible dans le code mais non visible graphiquement avec le style "display:none") qui contient juste un textarea et un bouton de soumission (nommé "Je suis un robot"). Lorsque "quelqu'un" soumet ce formulaire sont adresse IP est automatiquement backlisté (via deny dans .htaccess) et j'en suis immédiatement avertit par e-mail.
Je sais bien que les adresses IP peuvent changer fréquemment mais comme ça je bloque les robots avant qu'ils n'arrivent aux autres pages/autres formulaires et ça me fait un filtre supplémentaire (qui n'est pas très dur à mettre en place en fin de compte ... les robots sont tellement "cons" qu'ils soumettent eux même leurs demandes de blocage :D)

Mes questions sont les suivantes :
- Es-ce une bonne idée ? Les robots des moteurs de recherche peuvent-ils soumettre automatiquement des formulaire ? (j'ai pas envie de backlisté Google :roll: ... )
- Existe-t-il un moyen de séparer le fichier des adresse IP à bannir du .htaccess ?

Merci d'avance pour vos réponses.
 
WRInaute discret
Hello
les moteurs de recherche explorent les sites mais ne remplissent pas les formulaires.
Mais comment fais-tu pour écrire le deny automatiquement dans l’.htaccess ?
 
WRInaute discret
Hiseo a dit:
Hello
les moteurs de recherche explorent les sites mais ne remplissent pas les formulaires.
Mais comment fais-tu pour écrire le deny automatiquement dans l’.htaccess ?
En utilisant les fonction de lecture/écriture de fichier en php :
Code:
function blockIP($ip){
	//Pour être prévenu (à enlever après une phase de test car sinon bcp de mail ... 
	@mail("VOTRE E-MAIL","Nouvelle adresse IP bloquée","L'adresse IP ".$ip." va être bloquée");
	$file = ".htaccess";
	//On stock le contenu dans un fichier
	$contenu = file($file, 10);	
	if(@rename($file,$file."_backup_".date("Y-m-d"))){//On fait un backup de sécu du fichier
		$return = false;
		$fichier = fopen(".htaccess","w");
		foreach($contenu as $ligne){
			fwrite($fichier, $ligne."\n");
			if($ligne == "####DEBUT_BLOCK_IP######"){
				fwrite($fichier, "deny from ".$ip."\n");
				$return = true;
			}
		}
		fclose($fichier);
		return $return;
	}
	else {
		return false;
	}
}
Le fichier .htaccess doit contenir
Code:
order allow,deny
####DEBUT_BLOCK_IP######

Connaissez vous un moyen pour indiquer à .htaccess de lire un fichier contenant par exemple la liste des IP à bloquer (ou une liste sous la forme "deny from ... " ) ??

Merci.
 
WRInaute impliqué
Pour ma part, j'ai récemment mis en place le filtre Akismet pour les commentaires, ça semble bien marcher.

Sur un forum phpbb, j'ai installé un système de filtre basé sur des listes d'ip, ca gère bien aussi, je suppose qu'il y a moyen d'implémenter ça sur un site web.

Voila, quelques idées d'autres méthodes de filtrage ;)
 
WRInaute discret
mercier133 a dit:
Connaissez vous un moyen pour indiquer à .htaccess de lire un fichier contenant par exemple la liste des IP à bloquer (ou une liste sous la forme "deny from ... " ) ??
Merci.
J’ai trouvé ça : -http://lindev.fr/index.php?post/2009/06/09/Bannir-une/des-ip-via-Apache
 
Discussions similaires
Haut