Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 Re : Grenier Dotclear 1 » Spam et commentaires sans passer par le formulaire. » 2008-05-03 12:38:04

Bonjour, merci de m'avoir repondu.
Je rentre de vacances, donc je ne reponds que maintenant.

function addComment($post_id,$auteur,$email,$site,$content,
	$trackback=false,$delta=0,$pub=1)
	{
		$post_id = (integer) $post_id;
		$auteur = $this->secureString($auteur);
		$email = $this->secureString($email);
		$site = $this->secureString($site);
		
		$pub = (integer) (boolean) $pub;
		
		# Vérifications
		if (!trim($post_id)) {
			$this->setError(__('No entry ID'),1000);
		}
		
		if (!trim($auteur)) {
			$this->setError(__('Empty comment author'),1000);
		}
		
		if (!trim($content)) {
			$this->setError(__('Empty comment content'),1000);
		}
		/*  ########################################## Anti spam  ########################### */
		if (eregi("(.*)geocities(.*)",$site)) {
			$this->setError(__('Spamming domain site'),1000);
		}
		/* ################################################################################*/
		
		if ($site != '' && !$this->isEmail($email)) {
			$this->setError(__('Invalid email address'),1000);
		}
		
		if ($this->error() !== false) {
			return false;
		}
		
		$site = preg_replace('|^http://|','',$site);
		
		/*  ########################################## Anti spam  ########################### */
		if (!(eregi("(.*)geocities(.*)",$site))) {
		/* ################################################################################*/
		
		# Insertion
		$insReq = 'INSERT INTO '.$this->t_comment.' '.
				'(post_id,comment_dt,comment_upddt,comment_auteur,comment_email,'.
				'comment_site,comment_content,comment_ip,comment_pub,'.
				'comment_trackback) VALUES '.
				'(\''.$this->con->escapeStr($post_id).'\', '.
				'ADDDATE(SYSDATE(),INTERVAL \''.$delta.'\' HOUR),SYSDATE(), '.
				'\''.$this->con->escapeStr($auteur).'\', '.
				'\''.$this->con->escapeStr($email).'\', '.
				'\''.$this->con->escapeStr($site).'\', '.
				'\''.$this->con->escapeStr($content).'\', '.
				'\''.$this->con->escapeStr(@$_SERVER['REMOTE_ADDR']).'\', '.
				(integer) $pub.','.
				(integer) $trackback.') ';
		
		if (!$this->con->execute($insReq)) {
			$this->setError('MySQL : '.$this->con->error(),2000);
			return false;
		} else {
			$this->triggerMassUpd();
			$this->triggerPostNbComment($post_id);
			return true;
		}
		
		}  /* Accolade du si antispam plus haut */
		
		
	}

Voila la fonction modifiée, avec ce qui a eté modifié entre    ####### ...

Pour le mot "geocities" dans spamplemousse, et spamclear, j'ai essayé, ca ne marche pas.

#2 Grenier Dotclear 1 » Spam et commentaires sans passer par le formulaire. » 2008-04-19 22:51:24

$hark
Réponses : 4

Hey !

Je viens demander de l'aide sur ce forum car je rencontre un probleme de spam sur un dotClear d'une amie.
C'est un dotClear 1.2.5 hebergé sur les pages persos Free.

J'ai les antispam classiques pour cette version, a savoir Spamplemousse, et SpamClear, qui marchent relativement bien.

Cependant, il reste un bon paquet de spam qui arrivent a passer, encore et toujours, mais il semble que ce soit toujours le meme type de spam, a savoir, 3 ou 4 mots explicites en anglais, un pseudo aleatoire, et un lien vers un site web hebergé chez "uk.geocities.com"  .

Ce sont les seuls qui passent encore, et prevoyant une migration cet été vers un dotClear 2 qui me permettra d'installer Akismet, j'ai pour idée, en attendant, de filtrer les commentaires qui ont comme site internet des adresses geocities...
J'ai donc modifié le formulaire, mais il faut se rendre a l'evidence, les spammeurs ne passent plus par le formulaire, et injecte directement en POST les données, et ce malgré le changement de nom des champs par defaut, par des nom aléatoires.

Du coup, j'ai été dans le fichier  /inc/classes/class.blog.php  et j'ai modifié la fonction "addComment" de facon a ce que si le site contient "geocities", le commentaire ne soit pas validé.

Et ca continue a arriver...
Je suis perplexe, et je ne trouve pas comment on peut envoyer un commentaire dans la base de donnée sans passer par cette fonction...


Donc voila l'objet de ma presence: est ce qu'il y a d'autres fonctions permettant d'envoyer un commentaire a la base de données que la fonction addComment.
Je me fiche un peu du moyen, mais si l'url du site web contient "geocities", je voudrai que le commentaire soit kill. Que ce soit avant d'etre injecté dans la BDD, ou apres (mais immediatement)...


Merci... :)

Vous n'êtes pas identifié(e).

Pied de page des forums

Propulsé par FluxBB

Sites map