Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1452 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Eviter Fraude Dans la Comptabilisation de Clics

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Eviter Fraude Dans la Comptabilisation de Clics

n°1430842
ncdetoulou​se
Posté le 24-08-2006 à 17:17:28  profilanswer
 

Bonsoir à tout le monde !!
Je dois comptabiliser les clics sur bannières à raison d'un seul clic par connection internet par tranche de 24H.
Tout clic supplémentaire et toute tentative de fraude dans ce sens ne doit pas être pris en compte.
Comment éviter ces multiclics et multicomptabilisations ? (Cookies, ils peuvent supprimer / ips, ils peuvent changer..)etc
Merci à tous de votre aide !!
Antoine

mood
Publicité
Posté le 24-08-2006 à 17:17:28  profilanswer
 

n°1430845
jagstang
Pa Capona ಠ_ಠ
Posté le 24-08-2006 à 17:19:28  profilanswer
 

aucune manière sûr à 100% (à moins que les utilisateurs disposent de comptes)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1430847
ncdetoulou​se
Posté le 24-08-2006 à 17:20:41  profilanswer
 

Bien sur que si ;)
Les prestataires de pub (cibleclick, promobenef, doubleclick..etc) y parviennent sans cela ..
Si quelqu'un peut m'aider

n°1430851
jagstang
Pa Capona ಠ_ಠ
Posté le 24-08-2006 à 17:21:32  profilanswer
 

pas au changement d'ip en tout cas


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1430858
ncdetoulou​se
Posté le 24-08-2006 à 17:22:40  profilanswer
 

J'espère que quelqu'un aura la clé .. :)

n°1430864
jagstang
Pa Capona ಠ_ಠ
Posté le 24-08-2006 à 17:24:50  profilanswer
 

le sujet a déjà été abordé, et la conclusion est qu'il faut utiliser plusieurs méthodes complémentaires, (cookies, ip) mais que la solution ne sera jamais sûre à 100% (car c'est la machine qui vote, pas l'utilisateur...)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1430870
soju
One shot !
Posté le 24-08-2006 à 17:26:52  profilanswer
 

il faut faire un mix des deux, verif cookie + ip
(les régies de pub n'ont pas de stats 100% précises, il y a toujours moyen de "gruger" )
 
EDIT: grilled


Message édité par soju le 24-08-2006 à 17:27:21
n°1430871
ncdetoulou​se
Posté le 24-08-2006 à 17:26:54  profilanswer
 

Je comprends bien ;) Ce que j'ai besoin, c'est de quelqu'un pour me guider pour bien combiner les méthodes, alors ..

n°1430879
jagstang
Pa Capona ಠ_ಠ
Posté le 24-08-2006 à 17:31:26  profilanswer
 

fait une recherche alors [:jagstang]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1430882
ncdetoulou​se
Posté le 24-08-2006 à 17:32:17  profilanswer
 

Ca fait une semaine que jnarrive pas à qq chose de bien ..
Quelqu'un ne veut pas me guider ?

mood
Publicité
Posté le 24-08-2006 à 17:32:17  profilanswer
 

n°1431338
ncdetoulou​se
Posté le 25-08-2006 à 12:36:47  profilanswer
 

Ptit up ..

n°1431349
sircam
I Like Trains
Posté le 25-08-2006 à 12:56:55  profilanswer
 

Fais nous part de tes trouvailles.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1431353
ncdetoulou​se
Posté le 25-08-2006 à 13:00:53  profilanswer
 

Je vais coupler une vérification d'ips par 24h, à une vérification dun cookie créé, sur la même tranche horaire..
Mais ca ne me semble pas assez satisfaisannt..
Peut-on faire mieux ?

n°1431367
DarkHope
Posté le 25-08-2006 à 13:36:43  profilanswer
 

Création de compte "membre" pour ceux qui vont cliquer (Bannière disponible uniquement quand t'es loggué avec ton compte), c'est la seule manière totalement sûre (et encore, il faut vérifier qu'un utilisateur n'a pas plusieurs comptes), mais c'est très contraignant dans la plupart des cas.
 
Autrement il n'y a aucun moyen totalement fiable: L'utilisateur peut utiliser un proxy pour changer d'ip, déco/reco pour changer d'ip, supprimer ses cookies, etc...


Message édité par DarkHope le 25-08-2006 à 13:37:19
n°1431370
ncdetoulou​se
Posté le 25-08-2006 à 13:41:19  profilanswer
 

Impossible car ce sont des bannières qui seront disséminées partout sur le web ! Nimporte qui pourra cliquer dans le monde .. DOnc pas possible de créer des comptes ..
Comment alors récupérer l'ip le plus "fiable" des users ?

n°1431377
DarkHope
Posté le 25-08-2006 à 13:49:46  profilanswer
 

Si je comprends bien, tu vas proposer tes bannières sur plein de sites ne t'appartenant pas, et tu voudrais que lorsque les personnes cliquent dessus, cela déclenche un test du côté de ton site "si l'user a déjà cliqué, ne pas incrémenter" ?
 
De mémoire, pour récupérer l'ip de l'utilisateur il faut passer par la variable d'environnement $REMOTE_ADDR.


Message édité par DarkHope le 25-08-2006 à 14:01:45
n°1431379
chani_t
From Dune
Posté le 25-08-2006 à 13:54:18  profilanswer
 

Mais c'est bannières, renverront vers ton site ?

n°1431396
ncdetoulou​se
Posté le 25-08-2006 à 14:08:45  profilanswer
 

Oui pour les deux ;)
Le problème du remote addr, c'est que je crois que l'ip récupéré n'est pas le plus fiable et qu'on peut faire mieux ! Quelqu'un peut confirmer ?

n°1431398
jagstang
Pa Capona ಠ_ಠ
Posté le 25-08-2006 à 14:10:01  profilanswer
 

non tu peux pas faire mieux que $_SERVER['remote_addr']  
 
il n'existe pas d'ip "fiable" et d'ip "non fiable"   ;)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1431402
sircam
I Like Trains
Posté le 25-08-2006 à 14:11:27  profilanswer
 

L'IP pour identifier un visiteur, c'est on ne peut plus incorrect. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1431405
ncdetoulou​se
Posté le 25-08-2006 à 14:13:36  profilanswer
 

"L'IP pour identifier un visiteur, c'est on ne peut plus incorrect."
Que proposes-tu d'autre ?

n°1431409
chani_t
From Dune
Posté le 25-08-2006 à 14:14:56  profilanswer
 

lol... dans ce cas, tu doispouvoir aussi récupérer le site depuis lequel viens le visiteur, et demandé au visiteur de se connecter sur ton site sans quoi son vote ne sera pas pris en compte

n°1431412
ncdetoulou​se
Posté le 25-08-2006 à 14:16:28  profilanswer
 

Là ce n'est pas bête du tout ;)
Merci !

n°1431417
sircam
I Like Trains
Posté le 25-08-2006 à 14:20:27  profilanswer
 

ncdetoulouse a écrit :

Que proposes-tu d'autre ?


Rien. Une identification unéquivoque est impossible et c'est bien mieux ainsi. Même avec un compte, c'est pas garanti.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1431420
ncdetoulou​se
Posté le 25-08-2006 à 14:22:36  profilanswer
 

Merci de cette aide précieuse, sircam lol

n°1431433
supermofo
Hello World !
Posté le 25-08-2006 à 14:36:52  profilanswer
 

Il faut que tu prennes en comptes le fait que certains webmaster sont spécialisés dans la "forge de header". Meme si cette pratique est en soit illégale, elle devient nécessaire pour certains types d'applications.
 
Ton système ne pourras pas fonctionner si tu le bases uniquement sur les IP v4. Il suffit de réflechir 2 sec : pénurie d'IP => NAT, Proxy ...
 
Par contre sur IPv6 le nombre d'IP disponibles est bien plus grand que le nombre utilisés ( pour l'instant ...?).
 
Quoi qu'il en soit la fonction suivante te sera utile pour ton travail
 

Code :
  1. function valid_ipv4($ip_addr)
  2. {
  3.         $num="([0-9]|1?\d\d|2[0-4]\d|25[0-5])";
  4.         $range="([1-9]|1\d|2\d|3[0-2])";
  5.         if(preg_match("/^$num\.$num\.$num\.$num(\/$range)?$/",$ip_addr))
  6.         {
  7.                 return true;
  8.         }
  9.         return false;
  10. }
  11. function getip()
  12. {
  13. if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) ){
  14. $ips = explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
  15. $ip = valid_ipv4(long2ip(ip2long(array_pop($ip)))) ? long2ip(ip2long(array_pop($ip))) : err("Invalid IP" ); //safe
  16. }
  17. else {
  18. $ip = $_SERVER['REMOTE_ADDR']; //safe
  19. }
  20. return $ip;
  21. }


 
Sur place ou à emporter ?  :lol:


Message édité par supermofo le 25-08-2006 à 14:40:07
n°1431437
ncdetoulou​se
Posté le 25-08-2006 à 14:40:05  profilanswer
 

Ca m'a l'air assez puissant ..
Mais pourrais-tu me l'expliquer un peu ? Car je suis un peu perdu devant ça ..

n°1431439
sircam
I Like Trains
Posté le 25-08-2006 à 14:40:44  profilanswer
 

ncdetoulouse a écrit :

Merci de cette aide précieuse, sircam lol


[:kiki]
 
Il faut distinguer désirs et réalité. Ce n'est pas parce que tu souhaites qq chose que cela est possible.
 
Il est constant que ce que tu demandes n'est pas réalisable. Au mieux, tu peux réduire l'imprécision, mais ce que tu demandes, je te cite, "toute tentative de fraude dans ce sens ne doit pas être pris en compte", n'est pas du domaine du possible.
 
Il est vrai que la fraude prend une place assez importante (je n'ai plus de chiffres de mémoire, ce n'est pas un sujet qui me passionne). Le coup des cookies, bof : un robot s'en passera et tu ne peux pas obliger à ce qu'un cookie soit utilisé (sinon, ce sera un false positive). Le coup de l'IP, oublie. Il est toujours plus simple de simuler un comportement humain que de détecter un robot.
 
Finalement, c'est mieux comme ça.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1431448
supermofo
Hello World !
Posté le 25-08-2006 à 14:47:56  profilanswer
 

La fonction valid_ipv4 est une fonction qui va tester ta chaine $ip_addr pour vérifier si elle est une IP correcte e.g (0.0.0.0 => 255.255.255.255).
Tu px très bien ajouter les ip reservées dans cette fonction
 

Code :
  1. * 10.0.0.0 — 10.255.255.255 (10/8)
  2.     * 172.16.0.0 — 172.31.255.255 (172.16/12)
  3.     * 192.168.0.0 — 192.168.255.255 (192.168/16)
  4.     * 169.254.0.0 — 169.254.255.255 (169.254/16)
  5. //liste incorrecte


 
Deuxième fonction getip :
 
Si l'utilisateur est derrière un proxy  
1°) recuperer la chaine X_FORWARDED_FOR
2°) la dernière IP de cette chaine est celle de notre utilisateur derriere le proxy
3°) ip2long et long2ip sont vulgairement des cast
4°) si la dernière ip est IPV4 alors on l'utilise
 
1bis°)si l'utilisateur n'est pas un derrière un proxy prendre REMOTE_ADDR qui elle est toujours fiable ( not forgeable ).
 
PS: Bien entendu une personne souhaitant contourner ce filtre pourra toujours le faire mais cela representent très peu de gens ;)
Encore une fois le test IP seul ne te permettra pas de valider complètement tes clicks.  
 
Je te suggère fortement de t'inspirer de système existants prend Adbrite par exemple.
 
Edit: Lire les articles sur les sujets disponibles sur le Web.  
 
1°) Google: Ip spoofing
2°) ISP, NAT, proxy, SOCKS ( Reseau )
3°) Protocole HTTP
4°) Doc php
5°) http://www.kloth.net/internet/badbots.php


Message édité par supermofo le 25-08-2006 à 16:58:06
n°1431457
ncdetoulou​se
Posté le 25-08-2006 à 15:07:10  profilanswer
 

On va surement se moquer de moi, là, mais en essayant le code suivant je n'ai absolument RIEN qui s'affiche sur pa page de test, pq ?!
 
<?  
$ip1=$_SERVER['remote_addr'];
function valid_ipv4($ip1){        $num="([0-9]|1?\d\d|2[0-4]\d|25[0-5])";        $range="([1-9]|1\d|2\d|3[0-2])";         if(preg_match("/^$num\.$num\.$num\.$num(\/$range)?$/",$ip1))        {                return true;        }         return false;}function getip(){    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) ){    $ips = explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']);    $ip = valid_ipv4(long2ip(ip2long(array_pop($ip)))) ? long2ip(ip2long(array_pop($ip))) : err("Invalid IP" );    }    else {     $ip = $_SERVER['REMOTE_ADDR'];      }    return $ip;}  
echo "$ip $ip1"; ?>

n°1431459
soju
One shot !
Posté le 25-08-2006 à 15:11:26  profilanswer
 

attention à la casse
et $ip est vide vu que aucune valeur affectée

n°1431471
ncdetoulou​se
Posté le 25-08-2006 à 15:24:14  profilanswer
 

$ip1 devrait afficher qq chose en tout cas, non ?

n°1431488
soju
One shot !
Posté le 25-08-2006 à 15:41:58  profilanswer
 

attention à la casse

n°1431501
ncdetoulou​se
Posté le 25-08-2006 à 15:52:17  profilanswer
 

J'ai lu ! Et je ne vois pas d'erreur maj / min .. :(

n°1431507
ncdetoulou​se
Posté le 25-08-2006 à 15:57:20  profilanswer
 

Ah si, $_SERVER[REMOTE_ADDR] ^^

n°1431509
ncdetoulou​se
Posté le 25-08-2006 à 16:00:17  profilanswer
 

Donc j'ai le script suivant !
Et, avec ça, comment je fais pour resortir la bonne information ? (supermofo)
Merci d'avance !
 
 
<?  
$ip1=$_SERVER[REMOTE_ADDR];
function valid_ipv4($ip_addr){        $num="([0-9]|1?\d\d|2[0-4]\d|25[0-5])";        $range="([1-9]|1\d|2\d|3[0-2])";         if(preg_match("/^$num\.$num\.$num\.$num(\/$range)?$/",$ip_addr))        {                return true;        }         return false;}function getip(){    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) ){    $ips = explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']);    $ip = valid_ipv4(long2ip(ip2long(array_pop($ip)))) ? long2ip(ip2long(array_pop($ip))) : err("Invalid IP" );     }    else {     $ip = $_SERVER['REMOTE_ADDR'];  }    return $ip;}  
?>

n°1431533
supermofo
Hello World !
Posté le 25-08-2006 à 16:53:14  profilanswer
 

Code :
  1. mapage.php
  2. function valid_ipv4(...){...
  3. }
  4. function getip(){
  5. ...}
  6. $ip1 = getip();


 
Utilise les balises CPP :)


Message édité par supermofo le 25-08-2006 à 16:59:19
n°1431539
ncdetoulou​se
Posté le 25-08-2006 à 16:59:16  profilanswer
 

Merki :)

n°1433892
sho320
Posté le 30-08-2006 à 18:04:30  profilanswer
 

La solution proposée par supermofo reste contournable avec un bout de script php par exemple, en ajoutant dans le paquet une valeur X-Forwarded-For aléatoire. Ca me semble plus facile de tricher ainsi car on n'a plus à se déco/reco ou changer de proxy toutes les 5 min, ce qui etait tout de meme assez fatiguant.


---------------
Sonnerie polyphonique - Sonnerie Hi-Fi - Sonnerie Ultrason  
n°1435238
supermofo
Hello World !
Posté le 01-09-2006 à 16:12:50  profilanswer
 

C'est complètement vrai HTTP_X_FORWARDED_FOR est facilement modifiable. Faire des test avec live http headers pour s'en convaincre.
L'objectif de la fonction postée plus haut était justement de nettoyer les entrées utilisateurs.
 
L'ip à elle seule n'est pas un identifiant unique par contre la combinaison ip+cookie et id utilisateur semble l'etre un peu plus.
 
A toi de reflechir !

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Eviter Fraude Dans la Comptabilisation de Clics

 

Sujets relatifs
comment eviter les warning de sessionsComment éviter de tricher sur le nombre de fois qu'un lien est cliqué?
[résolu]eviter de saisir un char a la place d'un intCompteur de clics
[résolu] interdire F5 d'une page pour éviter l'envoi de donnéesAlléger un programme pour éviter de faire exploser la pile.
phpmyannuaire. Le compteur de clics de fonctionne plusLost connection to MySQL server during query -> Comment eviter cela ?
Comment éviter d'avoir une de timeout pour un traitement longEviter l'écran blanc lors du rechargement
Plus de sujets relatifs à : Eviter Fraude Dans la Comptabilisation de Clics


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR