Dotclear

Ticket #1152 (closed defect: fixed)

Opened 15 years ago

Last modified 13 years ago

correction Petit bug, et amélioration de linkslookup

Reported by: gnieark Owned by: Tomtom33
Priority: normal Milestone:
Component: module:plugins Version: 2.2
Severity: normal Keywords:
Cc:

Description

Bonjour,

Ce tiquet est une copie de ce message:  http://forum.dotclear.net/viewtopic.php?id=44095

Sur l'outil linkslookup dans le plugin antispam. Il y a deux problèmes:

Dans la funtion isSpam Le test sur le retour du gethostbyname n'est pas correct, c'est un résultat avec une ip en 127.X.X.X qui indique que l'Url est présente dans la bdd de surbl.

De plus l'expression régulière permettant de sortir le domaine de l'URL ne ressort pas les sous domaines (juste domaine.tld) alors que dans la base de donnée de subrl domaine.tld peut ne pas etre blacklisté tandisque sousdomaine.domaine.tld l'est.

Pour mon blog je l'ai modifiée de cette manière la function:

	public function isSpam($type,$author,$email,$site,$ip,$content,$post_id,&$status)
	{
		if (!$ip || long2ip(ip2long($ip)) != $ip) {
			return;
		}
		
		$urls = $this->getLinks($content);
		array_unshift($urls,$site);
		
		foreach ($urls as $u)
		{
			$b = parse_url($u);
			if (!isset($b['host']) || !$b['host']) {
				continue;
			}
			//c'est surement possible de remplacer les deux lignes suivantes par une seule expression régulière:
			$domain = preg_replace('/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/','$1',$b['host']);
			$domain_elem= explode(".",$domain);

			$i=count($domain_elem) -1 ;
			$host = $domain_elem[$i];
			do
			{
				$host= $domain_elem[$i-1].'.'.$host;
				$i--;
				if (substr(gethostbyname($host.'.'.$this->server),0,3) == "127" ) 
				{
					$status = substr($domain,0,128);
					return true;
				}				
			}while($i>0);	
		}
	}

Je me permet de le mettre en severity major, car dans certains cas, ça bloque tous les commentaires, j'ai trouvé plusieurs sujets similaires sur le forum. Je n'ai pas trouvé le rapport, mais c'est devenu bloquant (tous les commentaires en faux positifs) lorsque j'ai passé mon installation de dotclear en multiblog.

En espérant que ce retour vous soit utile.

Change History

comment:1 Changed 14 years ago by Tomtom33

  • Owner changed from team to Tomtom33
  • Milestone changed from 2.3 to 2.4

comment:2 Changed 14 years ago by bruno

  • Severity changed from major to normal

comment:3 Changed 14 years ago by bruno

  • Milestone 2.4 deleted

comment:4 Changed 14 years ago by kozlika

Il y a une raison qui s'oppose à mettre ce patch dans la 2.4 ? Faut-il tester ou un truc comme ça ?

comment:5 Changed 13 years ago by franck <carnet.franck.paul@…>

  • Status changed from new to closed
  • Resolution set to fixed

(In [dda0e8b497de]) enhance links lookup anti spam filter, thanks gnieark, fixes #1152

Note: See TracTickets for help on using tickets.

Sites map