[script] anti spam referrer

Nouveau WRInaute
Bonjour à tous,

concernant les spam referrer qui polluent les stats google, je vous propose un algo pour ne plus les avoir dans les stats:
1. Créer une table sql simple de nom par exemple spamlist qui contiendra la liste des url de spam
2. Lors de l'ouverture de votre page php,... récupérer l'url referrer. C'est la 1ère chose à faire dans votre page.
3. Si cette url fait parti de la table précédemment créer alors au lieu d'afficher la page, rediriger sur le site spammy

Création de la table en mysql
Code:
CREATE TABLE IF NOT EXISTS `spamlist` (
  `referrer` varchar(256) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Par exemple, en php cela donne:
Code:
$url = parse_url($_SERVER['HTTP_REFERER']);
$sql="SELECT referrer FROM spamlist l WHERE referrer='".$url['host']."'";
$req = @mysql_query($sql) or die ("Error in query: $sql. ".mysql_error());
if(mysql_num_rows($req)==1) {
	$data = mysql_fetch_array($req);
	header("Location: http://".$data[referrer]."/");
	exit;
}
 
WRInaute accro
Etant donné qu'il y a tout le temps des nouvelles URL de spam et qu'il y en a beaucoup qui apparaissent puis disparaissent après quelques jours, j'aimerais savoir comment tu maintiens la liste.

Jean-Luc
 
Olivier Duffez (admin)
Membre du personnel
si tu parles du spam de referrers dans Google Analytics, ton script ne sert à rien puisque ces spammeurs ne viennent même pas sur ton site
 
WRInaute accro
WebRankInfo a dit:
si tu parles du spam de referrers dans Google Analytics, ton script ne sert à rien puisque ces spammeurs ne viennent même pas sur ton site
Ils viennent sur le site :wink: seule l'adresse de départ est (forcément) fausse.
jeanluc a dit:
Etant donné qu'il y a tout le temps des nouvelles URL de spam
On ne bloque pas l'adresse IP mais on vérifie si dans l'adresse précédante il y a nos copains.

>omothermix
un peu juste :D
https://www.webrankinfo.com/forum/t/ce-qui-se-passe-sur-votre-site-programmation.181314/
 
Olivier Duffez (admin)
Membre du personnel
si tu penses encore qu'ils viennent sur le site, soit tu ne parles pas du même spam que moi, soit tu es un coup en retard ;-)
 
WRInaute accro
Ou nettement en avance:
Lu sur Wikipédia:
Cette technique consiste à envoyer des requêtes aléatoires vers un site en utilisant comme adresse de référant l'adresse d'un site à promouvoir. Lorsque les sites visés publient la liste des sites qui leur ont envoyé des requêtes, ils publicisent involontairement les sites que le fraudeur voulait promouvoir.
La définition de WIKI est un peu fausse puisque cette technique est aussi utilisée par des sites de E-notoriété pour que le webmaster visite le site pour vendre leur camelotte.

Et détectés depuis presque deux ans (en septembre 2013: première implantation sur quelques pages de mes sites d'un script PHP de protection). :wink:

Il n'y a pas qu'analytic qui est impacté: toutes les méthodes de suivi visiteurs: ces bricoleurs sont détectés comme lecture du contenu des pages.
En gros:
1. Russes et Ukrainiens (et un paquet de pays européens de l'ancien bloc de l'est) essayent de simplement être repris dans les listes d'adresses envoyant un lien automatiques
2. Chinois (mais aussi les deux principaux au-dessus) et quelques trucs américains - amérique du SUD essayent des forums, principalement s'ils sont inconnus comme développement (ce qui est mon cas): généralement en 3 - 4 pages.

Et si quelques uns se demandent pourquoi la Chine, l'Ukraine, la Russie, la Pologne, la Roumanie, .... se font strictement interdire l'accès par plages d'adresses dès que je détecte un bricolage :mrgreen:


J'ai déjà donné sur WRI le script de détection, bloquage automatique pour quelques uns (ces spams referer One Shot ne sont pas bloqués automatiquement mais détectés et finalement bloqués par plages d'adresses (puisque ces plages d'adresses de serveur ont d'autres bad voisins) mais surtout en reprenant les adresses précédentes), ... et sur mon site la méthode de bloquer définitivement: voire POST posté sur WRI ci-dessus.
Tout ce qui est inutile comme visiteur mais surtout me bouffe de la bande passante est INTERDIT.

j'ai envoyé le fichier IPTABLE sur ce post mais ce forum limite le nombre de caractères à 60000 et j'en était à 86186 . Ceux qui sont intéressé par le fichier actuel peuvent m'envoyer un MP.
PS: me fout d'analytic, installé sur une partie de mes sites mais XITI est plus rapide pour voire ce qui c'est passé la vieille en quelques minutes. Et un peu marre de se faire visiter par un paquet de robots, aspirateurs, spams-refer, ... Suis devenu écologique, réduire la bande passante inutile: dans ce genre de post, mes sites (pas que moi ... Ortholof, Zeb, ont aussi mis un œuvre leurs propres méthodes) sont un peu en avance.
Patrick.
 
Olivier Duffez (admin)
Membre du personnel
j'ai bien précisé dans chacun de mes messages "si on parle du même spam" ;-)
Patrick, tu sembles parler du spam de referrer classique
Mais dans Google Analytics, on a surtout du spam de referrer (car il est listé dans les referrers) généré sans JAMAIS venir sur notre site. Il injecte des données dans notre compte GA sans connaître notre nom de domaine, en tirant au hasard des ID GA
et donc, pour ce type de spam, ça ne sert strictement à rien de vouloir les contrer sur son propre site (en PHP, .htaccess ou autre) : il faut un filtre dans GA.
 
Nouveau WRInaute
Bonjour à tous,

@jeanluc>effectivement je n'ai que 1500 visites par jours, donc 1x par semaine je me connecte pour vérifier mes referrers et il est facile de trouver les spammy ;) que je rajoute à la liste

@ybet>intéressant ce que tu as écrits même si je trouve cela compliqué. Dommage ta page n'est pas très bien référencé par google. Du coup, pas facile de la trouver. J'ai donc gardé ton lien ;)

@WRI>le lendemain de la mise en place de ce script, darodar, ilovevitaly, econom,... n'apparaissait plus dans la liste des referrers. Alors, effectivement, le script n'est pas infaillible à 100% et ne protège pas entièrement. Certains arrivent encore à passer. Mais sur le nombre, un bon nombre ne s'affichent plus dans la liste des referrers. C'est une solution comme une autre.
Concernant ceux qui utilise directement l'id GA, effectivement cela ne sert à rien. Du coup, pour ma part, j'ai un segment qui me filtre les données.

Voici ma liste pour ma part. Certains ne sont peut être plus d'actualité, mais cela ne mange pas de pain de les laisser ;)
blackhatworth.com
hulfingtonpost.com
ilovevitaly.com
iedit.ilovevitaly.com
shopping.ilovevitaly.com
ilovevitaly.co
priceg.com
forum.topic48459475.darodar.com
darodar.com
econom.co
bestwebsitesawards.com
o-o-6-o-o.com
humanorightswatch.org
simple-share-buttons.com
site25.simple-share-buttons.com
youporn-forum.ga
site4.free-share-buttons.com
site3.free-share-buttons.com
site2.free-share-buttons.com
site1.free-share-buttons.com
youporn-forum.ga
youporn-forum.uni.me
free-share-buttons.com
forum.topic61205141.darodar.com
event-tracking.com
w ww.Get-Free-Traffic-Now.com
www6.free-social-buttons.com
www1.free-social-buttons.com
www2.free-social-buttons.com
www3.free-social-buttons.com
www4.free-social-buttons.com
www5.free-social-buttons.com
www7.free-social-buttons.com
www8.free-social-buttons.com
www9.free-social-buttons.com
site5.free-share-buttons.com
site6.free-share-buttons.com
site7.free-share-buttons.com
site8.free-share-buttons.com
site9.free-share-buttons.com
floating-share-buttons.com
site1.floating-share-buttons.com
site2.floating-share-buttons.com
site3.floating-share-buttons.com
site4.floating-share-buttons.com
site5.floating-share-buttons.com
site6.floating-share-buttons.com
site7.floating-share-buttons.com
site8.floating-share-buttons.com
site9.floating-share-buttons.com
site10.floating-share-buttons.com
w ww.event-tracking.com
yourserverisdown.com
youporn-forum.uni.me
free-social-buttons.com
site25.simple-share-buttons.com
get-free-social-traffic.com
success-seo.com
site5.free-floating-buttons.com
site1.free-floating-buttons.com
site2.free-floating-buttons.com
site3.free-floating-buttons.com
site4.free-floating-buttons.com
site1.floating-share-buttons.com
site2.floating-share-buttons.com
site3.floating-share-buttons.com
site4.floating-share-buttons.com
site5.floating-share-buttons.com
site6.floating-share-buttons.com
site7.floating-share-buttons.com
site8.floating-share-buttons.com
 
WRInaute accro
à cette liste tu peux ajouter tous les sites qui arrivent depuis une page qui s'appelle try.php
par exemple -http://success-seo.com/try.php
mais le domaine varie
 
WRInaute passionné
est ce illegale de faire du spam referrer? (contrairement aux mails)

Sinon, on peut voir si cela est une methode SEO qui marche :D

Sinon, techniquement, on peut verifier si c'est vraiment un refferer en php, suffit de recuperer le referrer, de visiter la page, de la parser et verifier dans le code source qu'il y ai bien le lien vers notre site (un peu risqué, car certain sites bloquent les robots peu ou pas connu, donc un script php serait bloqué par un vrai referrer, solution : mettre une liste blanche).
 
Nouveau WRInaute
Dans GA, plutôt que de maintenir une liste d'URL que l'on filtre et que l'on doit mettre sans arrêt à jour, le plus simple est de filtrer ceux dont le hostname n'est pas l'URL de votre site. Quasi tous ces spams referer laissent ce champ vide.
J'avais commencé avec une liste, mais il y a en permanence de nouveaux venu, c'est sans fin :-( Avec le filtre sur le hostname, plus aucun souci de mon côté.
 
WRInaute accro
indigene a dit:
à cette liste tu peux ajouter tous les sites qui arrivent depuis une page qui s'appelle try.php
par exemple -http*://*success-seo.com/try.php
mais le domaine varie
Il est connu mais c'est une modif de quelques mois :wink:

omothermix a dit:
Bonjour à tous,

@ybet>intéressant ce que tu as écrits même si je trouve cela compliqué. Dommage ta page n'est pas très bien référencé par google. Du coup, pas facile de la trouver. J'ai donc gardé ton lien ;)
1. complexe puisqu'il bloque beaucoup d'autres choses (principalment les aspirateurs de sites et les tentatives d'essais SQL).
2. Aucun intérêt qu'il soit référencé. J'ai mis 4 liens internes et 1 lien externe (sur WRI): c'est un outils spécifique pour Webmaters: autant qu'il soit juste partagé entre webmasters responsables ... et pas avec des "saloparts".

Pas trop le temps de le modifier actuellement mais il laisse passer encore quelques trucs (dimanche: philippines avec un script utilisé depuis des années pour envoyer des mails à partir du forum: interdit sur le serveur toutes les philippines). Avec cette programmation, tout ce qui lit deux fois la même page avant d'aspirer la deuxième en deux visite passe encore ... plus pour longtemps. Par contre: les robots de moteurs sont "protégés" mais mis dans une table à part.

-http://success-seo.com/try*.php?u=http://*darut.be vient de passer sur un site (l'adresse est dans le lien) ... et celui-là n'est pas (encore) au top ... en version (pourtant, l'adresse IP 187.84.195.42 (serveur brésilien) doit avoir quand même eut un petit problème, il est revenu voire la page directement à prêt avec l'adresse IP comme précédante ( :mrgreen: ... je pense que le robot de success-seo s'est rendu compte d'une redirection et est repassé voire la page en "normal" : sinon je redirige automatiquement vers un autre site (généralement un autre spamsmeur en fonction de l'adresse précédante). En PHP, on peux tout faire ... (ou presque) un copieur par frame ... se retrouve automatiquement sur tous mes sites avec une belle page d'entrée d'un site ... adulte: le programme détecte l'adresse précédant et renvoit en redirection 301 vers l'autre: le "lien" n'est plus repris dans les outils webmasters. :mrgreen:
Pas de pitiés pour ces bricoleurs. Je viens de supprimer par IP WeSEE_Bot:we_help_monitize_your_site (-http://www.*wesee.com/bot/) qui selon ce qu'on trouve sur le WEB vient piquet les photos: la page expliquant le robot n'est pas disponible

Adresses de visites détectées par mon système: 159.8.204.148, 159.8.204.154, 159.8.204.156, 159.8.204.158, 159.8.232.196, 159.8.232.199, 159.8.232.203, 159.8.232.212, 159.8.232.213, ...214, 215, 217 ... et 159.8.232.219 + 159.8.234.165 et 159.8.234.169 + 159.8.234.176 + 159.8.234.185 + 159.8.234.190. On continue :wink: 169.55.210.13, 169.55.210.14, 169.55.210.4 (et 6 et 7) ... puis
169.55.221.68 , 169.55.221.71, 169.55.222.40, 169.55.222.56, 169.55.222.59, 169.55.230.176, 169.55.230.182 et en dernier 169.55.230.184. Remarque que quelques adresses sont discontinues (6,7, ... 9) la 8 fait probablement partie du même brol.

Première solution: bloquer sur le user_agent ou le renvoyer automatiquement vers un autre site :D et il va modifier le user_agent au prochain passage :oops: . En général ce robot viens sans page précédante (pas détectée) et parfois avec une mais généralement vers une page en erreur-404
Pas avec une méthode un peu plus radicale: toutes ces adresses IP sont hébergées par softlayer.

Et la solution adoptée par moi est d'interdire les adresses IP directement sur le serveur par firewall:

##169.53.0.0 - 169.63.255.255 soft layer avec .wesee.com
iptables -I INPUT -s 169.53.0.0/16 -j DROP
iptables -I INPUT -s 169.54.0.0/15 -j DROP
iptables -I INPUT -s 169.56.0.0/13 -j DROP

##159.8.0.0 - 159.8.255.255 wesee
iptables -I INPUT -s 159.8.0.0/16 -j DROP
S'ils change de serveurs, ils seront aussi détectés et ... interdits.


La majorité des webmasters veulent le plus de visiteurs possibles pour gonfler leur coup, ... moi (comme quelques autres ici), je veux des VRAIS visiteurs sur mes sites qui (en plus) sont susceptibles de payer mes frais. Tous le reste est à supprimer.
Par contre je protège de très petits moteurs de recherche sur le développement en les laissant passer: mojeek, qwant, voila qui rapporte aucun visiteur, DMOZ et (bizarrement) archive.org, ... et quelques autres.
Petit exemple quand même: je reçoit régulièrement des visites d'une adresse IP venant du ministère de la justice belge (ce qui au départ me dérange pas) sauf que dans les visites, quelques unes ont simplement comme user "agent Mozilla 4.0." (un robot ou un fonctionnaire qui bidouille pour ne pas que les contribuables sachent qu'il navigue dans ses heures de bureau). Pour l'instant, laisse la plage ouverte (mais ca me démange). :roll:
On peut tout faire, y compris n'importe quoi (c'est là le problème: en législation, je peux interdire n'importe qui tant que mes sites sont dans la législation ... ce qui est le cas mais se mettre aussi des limites respectables). Interdire l'Afrique qui n'est pas rentable est facilement possible (un paquet de copieurs automatiques). Pourtant ... ces régions ont aussi des connexions limitées (et sont pour rappel plus souvent pauvres). Une tentative d'aspirateur de site est automatiquement bloquée sur mes sites et .. je rouvre l'adresse quelques jours plus tard. Tout mais pas n'importe quoi.
:wink: Patrick
 
WRInaute accro
ybet a dit:
http:/ /sucks cess-seo.com/try*.php?u=http://*darut.be vient de passer sur un site (l'adresse est dans le lien) ... et celui-là n'est pas (encore) au top ... en version (pourtant, l'adresse IP 187.84.195.42 (serveur brésilien) doit avoir quand même eut un petit problème, il est revenu voire la page directement à prêt avec l'adresse IP comme précédante ( :mrgreen: ... je pense que le robot de success-seo s'est rendu compte d'une redirection et est repassé voire la page en "normal" : sinon je redirige automatiquement vers un autre site (généralement un autre spamsmeur en fonction de l'adresse précédante).
Là, tu viens de faire un backlink à ce success-seo :wink: Ils vont être contents!

J'ai un nouveau site où ce robot passe plusieurs fois par jour sur la page d'accueil avec des IP très différentes. En plus, il recharge à chaque fois toutes les images ... pour faire plus vrai ???

Ce sera comme pour les autres spammeurs de referrers. Cela ne durera que quelques jours/semaines/mois puis ils disparaîtront. A mon avis, c'est plus rentable de les ignorer que d'essayer de les combattre.

Jean-Luc
 
WRInaute accro
:!: Il y a une belle faire d'injection SQL dans le script :roll:
Le referer étant envoyé par le client:
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">parse_url</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"http://';DROP TABLE users;--"</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault"></span>
Code:
Array
(
    [scheme] => http
    [host] => ';DROP TABLE users;--
)
 
WRInaute accro
omothermix a dit:
Il ne ralentit pas trop l'affichage de la page?

Tape ybet sur Google, tu va tomber sur mon site: aucun ralentissement ... (évite les 3 pages en moins de X secondes :wink: le blocage est automatique). En plus il y a d'autres choses qui sont chargées sur les pages (pas encore sur toutes comme un anti-adblog ... rien que pour le plaisir) pour éviter d'autres bricolages.

jeanluc a dit:
Là, tu viens de faire un backlink à ce success-seo :wink: Ils vont être contents!

J'ai un nouveau site où ce robot passe plusieurs fois par jour sur la page d'accueil avec des IP très différentes. En plus, il recharge à chaque fois toutes les images ... pour faire plus vrai ???

Ce sera comme pour les autres spammeurs de referrers. Cela ne durera que quelques jours/semaines/mois puis ils disparaîtront. A mon avis, c'est plus rentable de les ignorer que d'essayer de les combattre.

Jean-Luc
Erreur 404 pour le lien.
Comme je vérifie uniquement les accès sur les pages en php, impossible à savoir pourquoi il charge toutes les images à chaque fois MAIS tous ces faux robots font probablement plus d'autres choses (y compris du vol de contenu). L'idée de départ n'était pas d'interdire l'accès à des bricolages mais bien d'éviter de nouveau le dupplicate content(avec la sortie de Pinguin et la recorrection des pages de nouveau recopiée après le ménage de 2008 d'avoir d'autres copieurs). C'est ensuite que je suis tombé dans les résultats sur un paquet d'autres bricolages. Du coup j'ai ajouté des parties dans la programmation.

spout a dit:
:!: Il y a une belle faire d'injection SQL dans le script :roll:
Le referer étant envoyé par le client:
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">parse_url</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"http://';DROP&nbsp;TABLE&nbsp;users;--"</span><span class="syntaxkeyword">));<br />&nbsp;</span><span class="syntaxdefault"></span>
Code:
Array
(
    [scheme] => http
    [host] => ';DROP TABLE users;--
)
Du parle de quoi, quel script?
 
Nouveau WRInaute
Encore faudrait il que l'utilisateur qui ait accès à la bdd est les droits de drop ;)
Je n'utilise un utilisateur qui est juste les droits de select et execute de PS. Pour les insert, update et delete, il passe par des PS.
 
Nouveau WRInaute
Après tu peux toujours faire de l'injection sql pour faire des select, mais cela ne va pas te servir beaucoup ;)
La 1ère chose à faire est de sécuriser la bdd et je pense bientôt que même pour les select cela passera par des PS.
Cela permettra d'optimiser en prime le code sql.
Avec un utilisateur que ne peux faire que de l'exécution de PS, tu ne pourras pas faire grand chose au niveau injection sql.
 
WRInaute accro
Oui mais vu que tu partages ton script sur WRI, c'est bien d'indiquer pour les autres que ton script n'est pas sécurisé :wink:
 
Discussions similaires
Haut