triche sur les compteurs

triche sur les compteurs - HTML/CSS - Programmation

Marsh Posté le 27-05-2012 à 09:40:25    

Bondour  :jap:  
 
Sur mon site j'ai des pages du type http://monsite.com/membre4343421.php
Ces pages intègrent un compteur de vue.
 
J'ai des petits rigolos qui trichent en faisant ça sur leur blog:
<img src="http://monsite.com/membre4343421.php" />
 :D  
 
technique de clickjacking ultra connue.
 
bon pour l'instant j'ai mon panel admin qui me permet de détecter facilement la triche (j'ai les referer, j'ai juste à checker le code source du tricheur pour démasquer l'entourloupe), mais ça impose une vérification occasionnelle de ma part sur les comptes suspects.
Or comme tout bon webmaster fainéant j'aimerais automatiser cette tache.
 
Est-ce qu'il existe un moyen de vérifier si un membre s'adonne à ce genre d'inclusion? (php, apache, ou n'importe quel mod/programme sous linux)
 
j'ai dépouillé google sans succès, le seul truc hardcore et dégeu qui m'est venu à l'idée c'est de faire un curl sur le referer et parser/scrapper sa page avec un preg_match pour rechercher les triches typiques.  :whistle: assez lourd et lent comme méthode vous en conviendrez...
 
Merci


---------------
Orhan çalarken minübüsten inilmez şekerabim!
Reply

Marsh Posté le 27-05-2012 à 09:40:25   

Reply

Marsh Posté le 28-05-2012 à 10:30:28    

Pourquoi t'utilises pas Google Analytic ou un outil en GPL comme Piwik qui sont autrement mieux codé que ton système :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-05-2012 à 14:51:16    

si ton compteur est directement en php tu peux tenter de limiter les degats/isoler rapidement certains scripts via $_SERVER['HTTP_ACCEPT']
 
webkit est un gros relou et envoi */* mais ff et ie envoient image/* normalement dans un tag <img>
 
ca peut te permettre de remonter rapidement les tricheurs si tu veux faire la police
 
par contre (et c'est la que ca va te plaire), tous les navigateurs envoient explicitement 'text/html' en accept pour l'ouverture d'une page html/php.
 
normalement si tu mets un script qui teste la presence de 'text/html' dans l'accept et ne renvoie le contenu que dans ce cas ton compteur devrait marcher un peu mieux :)
 

Code :
  1. <?php
  2. if (stristr($_SERVER['ACCEPT'],'text/html')===false){
  3. die();
  4. }
  5. ?>



Message édité par pop-pan le 28-05-2012 à 15:05:05

---------------
Plop !
Reply

Marsh Posté le 28-05-2012 à 19:38:29    

ça me plait en effet, y'a de l'idée, mais j'ai qqchose qui complique:

 

en fait pour être plus précis la page de l'affilié n'est pas http://monsite.com/membre4343421.php mais http://monsite.com/membre4343421.jpg

 

je fais de l'url rewriting, http://monsite.com/membre4343421.jpg renvoie sur http://monsite.com/page.php?membre=4343421&key=var

 

bon je simplifie pour votre confort de lecture mais y'a plein de params qui passent dans l'url/get.

 

ton truc est pas bête, d'ailleurs j'avais eu une idée dans ce type en essayant d'écrire un genre de règle anti-leech htaccess mais je n'y suis pas arrivé.


Message édité par TurkishMafia le 28-05-2012 à 20:05:06

---------------
Orhan çalarken minübüsten inilmez şekerabim!
Reply

Marsh Posté le 28-05-2012 à 19:51:33    

d'autant que $_SERVER['ACCEPT'] ne renvoie rien chez moi. (FF12,XP)

 

edit:

 

comme ça c'est mieux  :D


if ( !stristr($_SERVER['HTTP_ACCEPT'],'text/html') && !stristr($_SERVER['ACCEPT'],'text/html') ){die();}

 

merci à toi  :hello:


Message édité par TurkishMafia le 28-05-2012 à 20:05:53

---------------
Orhan çalarken minübüsten inilmez şekerabim!
Reply

Marsh Posté le 28-05-2012 à 22:04:44    

hum...
si tu envois ca via un url_rewrite avec un fichier a utiliser comme une image il est possible que le navigateur n'envoie pas text/html justement car tu l'utilise correctement comme une image (dans les balises<img> )
 
ca voudrait dire que meme les *bons* compteurs ne vont pas marcher.
 
reste donc le REFERER
tu peux simplement tester que l'appel du counter provient du meme serveur que le counter lui meme (si c'est comme ca que ca marche)

Code :
  1. if(!isset($_SERVER['HTTP_REFERER'])||stristr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])===false){
  2.     die();
  3. }


 
ou alors utiliser une whitelist par userId


Message édité par pop-pan le 28-05-2012 à 22:06:10

---------------
Plop !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed