preg_match('#^Good.*?luck.*[0-9]+$#', $topic_title)
parce qu'elle est plus rapide, mais c'est pas comme si c'était exécuté 100 fois par seconde
preg_match('#^Good.*?luck.*[0-9]+$#', $topic_title)
parce qu'elle est plus rapide, mais c'est pas comme si c'était exécuté 100 fois par seconde
if ($userdata['user_id'] == ANONYMOUS && preg_match('#good.*luck#i', $subject)) {
$error_msg = 'Veuillez changer le titre de votre sujet ou vous enregistrer sur le forum (anti-robot)';
}
Pour le mod_security pourquoi pas, il faudra que je jette un coup d'oeil. Par contre le problème de bcp de robots est qu'ils ont justement des IPs dynamiques en rebondissant sur des machines infectées par un trojan ou truc du genre. Donc difficile de les bloquer proprement :/
Il n'est pas indispensable de les bloquer au niveau des IP mais bien au niveau du contenu de la requête http. Le filtrage se fait en module compilé. On peut donc supposer qu'un filtrage "Apache" sera plus rapide qu'un filtrage PHP.Pour le mod_security pourquoi pas, il faudra que je jette un coup d'oeil. Par contre le problème de bcp de robots est qu'ils ont justement des IPs dynamiques en rebondissant sur des machines infectées par un trojan ou truc du genre. Donc difficile de les bloquer proprement :/
J'ai essayé sur les tutoriaux ça ne marche pas, les robots passent quand même. En fait ils appellent probablement direct la page d'insertion, en y passant les bons params donc le javascript n'a pas d'utilité.et une confirmation javascript bidon quand un invité poste un message?
Genre êtes vous sur de vouloir de poster de message
Résolu, j'ai mis à la poubelleÇa c'est nouveau: http://www.phpfrance.com/forums/voir_re ... php#116854

une petite idée (mais je ne sais pas si ça va avancer à grand chose...) :En fait ils appellent probablement direct la page d'insertion, en y passant les bons params donc le javascript n'a pas d'utilité.
if((!isset($_POST))||(!ereg("^URL DE MON SITE",$_SERVER['HTTP_REFERER']))) {
exit("SYSTEM ERROR<meta http-equiv=\"refresh\" content=\"2;URL=javascript:history.go(-1)\">");
}
résultat : on est obligé d'avoir rempli le formulaire (dûment testé précédemment...) MAIS EN PLUS de venir du bon site, ce qui empeche les plaisanteries de ce genre.