JeuWeb - Crée ton jeu par navigateur
Récupération de la source d'une page d'un site - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Récupération de la source d'une page d'un site (/showthread.php?tid=1595)

Pages : 1 2 3


Récupération de la source d'une page d'un site - djidi - 06-10-2010

Bonjour,

J'avais (il y a quelques temps) développé un script en php avec curl pour récupérer le code source d'une autre page.
En manipulant les variables envoyées, j'avais donc pu récupérer le classement d'un jeu avec la position d'un joueur puis j'avais avec cela créé une signature personnalisée.


Mon problème est le suivant :
Ca marchait très bien jusqu'au jour ou les dev' du jeu (qui n'ont pas du aimer que j'envoie des requêtes régulières) ont fait en sorte que lorsque j'envoie une requête ca ne fonctionne plus.

Pour comprendre ce qu'il se passait j'avais enlevé la partie "Génération d'image" et je m'étais rendu compte que la requête me redirigeait automatiquement vers leur site.


Ce que j'aimerais savoir c'est :
- Comment ils ont fait?
- Existe-t-il un moyen de contourner ce système? (/me aimait beaucoup son système de signatures)

Je poste le script de base (j'ai mis que l'essentiel le reste n'étant sans doute pas utile)


<?php

$ch = curl_init();
$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, 'http://www.google.fr/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);

$lines = array();
$lines = explode("\n", $file_contents);

foreach($lines as $line_num => $line)
{
echo "Line # {$line_num} : ".htmlspecialchars($line)."<br />\n";
}

?>

Merci d'avance


RE: Récupération de la source d'une page d'un site - niahoo - 06-10-2010

peut-être qu'ils te calculent avec ton user agent..

peut-être que tu devrais leur demander la permission aussi ..;


RE: Récupération de la source d'une page d'un site - Plume - 06-10-2010

C'est pas bien vilain comme pompage. Toutefois, il serait effectivement bienvenue que tu demandes la permission aux développeurs. Surtout qu'ils pourraient développer des solutions moins gourmandes, plus performantes et plus accessibles Smile

@tchaOo°


RE: Récupération de la source d'une page d'un site - Sephi-Chan - 06-10-2010

(06-10-2010, 05:45 PM)InboX a écrit : Salut,

Si je comprend bien il permet de voler les sources HTML des autres site ?
car le php c'est pas possible de le prendre dans les sources d'un site

enfin encore un truc/astuse Inutile est pas cool pour les créateurs qui passe des heures a coder leur pages web

Cordialement,

Je pense que tu n'as pas compris… Il utilisait son robot pour récupérer des données des joueurs et créer une signature dynamique à partir de ces informations. On voit souvent ce genre d'images dans les signatures de forum.

Ce n'est pas parce que tu ne comprends pas l'intérêt que c'est inutile ou que c'est du vol : il compense juste un manque du jeu qui ne fournit pas cette fonctionnalité (ou d'API pour le faire).

Maintenant, comment le créateur a-t-il pu te repérer ? Une requête HTTP effectuée via cURL est plutôt brute de décoffrage en terme d'en-tête envoyés, elle est donc facile à cible au milieux d'access log d'Apache (ou de n'importe quel autre serveur Web), il a donc probablement filtré selon ces informations.


Sephi-Chan


RE: Récupération de la source d'une page d'un site - Plume - 06-10-2010

Tu veux en abuser pour quoi ? Tout ce que tu peux faire, c'est lire du HTML. Explique.


RE: Récupération de la source d'une page d'un site - djidi - 06-10-2010

Heu... ce code peut être trouvé rapidement sur Google.
Et à ce compte la faudrait arrêter de montrer des bouts de code si on devait penser aux utilisations qui pourraient en être faites.

Pour les headers, j'ai fait un test en utilisant mes serveurs pour voir les headers envoyés.
En effet ils sont bien maigres ^^
Du coup je peux les simuler avec les options de cURL (CURLOPT_USERAGENT par exemple).

Par contre, s'ils voient des requêtes régulières ne risquent-ils pas de blacklister l'IP ?
Quel serait la "fréquence" des requêtes au maximum avant que ca en arrive à ce point ?


RE: Récupération de la source d'une page d'un site - Plume - 06-10-2010

Dépend probablement de la configuration du serveur. Et si ça s'trouve, i't'a même pas grillé, il a p'tet juste eut un coup de chance.

C'quoi ce jeu ?


RE: Récupération de la source d'une page d'un site - Sephi-Chan - 06-10-2010

(06-10-2010, 06:59 PM)InboX a écrit : j'ai compris le sujet mais je parle pas directement lui
certes c'est de l'aide
mais il donne un code ou certain peuvent en abusé voila tout.

je suis désolé d'être intervenue sur le sujet la prochaine fois je dit rien Smile
mais j'en pense pas moins sur des choses comme ca.

Cordialement,

Non, ne te sens pas obligé de te taire, un forum c'est fait pour discuter !
Mais si on devait se priver de présenter tout code qui peut faire l'objet d'abus, on n'irait pas bien loin ! Et puis, compter sur le fait que les gens ne connaissent pas n'est pas une bonne chose : il faut que tout le monde connaisse cURL, HTTP, etc. Ça ne peut être que bénéfique !

Qu'est-ce qui te gène avec les choses comme ça ?


Sephi-Chan


RE: Récupération de la source d'une page d'un site - djidi - 06-10-2010

http://www.lastchaos.fr/ranking/

Mais ils ont changé récemment leur classement et mon script avait été fait il y a quelques mois.
Je le ressort du placard vu que j'aimerais bien le refaire un peu mieux et qu'il marche plus longtemps ^^


RE: Récupération de la source d'une page d'un site - Sephi-Chan - 06-10-2010

(06-10-2010, 07:16 PM)djidi a écrit : Pour les headers, j'ai fait un test en utilisant mes serveurs pour voir les headers envoyés.
En effet ils sont bien maigres ^^
Du coup je peux les simuler avec les options de cURL (CURLOPT_USERAGENT par exemple).

Par contre, s'ils voient des requêtes régulières ne risquent-ils pas de blacklister l'IP ?
Quel serait la "fréquence" des requêtes au maximum avant que ca en arrive à ce point ?

Pourquoi veux-tu faire des requêtes régulières ? Pourquoi ne pas récupérer les infos à la demande.

Imagine que je tente d'afficher l'image de mon profil générée par ton Web Service à l'URL suivante : http://web-service.tld/signs/sephi-chan. Ton système va alors savoir que je veux l'URL de l'user sephi-chan, il va donc aller chercher ce nom dans la/les page de classement du jeu puis générer l'image. Ainsi, pas de requête régulière, donc moins de chances de te faire cramer ! Smile

Mais sinon tu devrais contacter le développeur, lui proposer d'écrire un web service qui retourne du JSON quand on va à l'URL http://jeu.tld/users/sephi-chan.json. Comme ça il contrôle la durée de vie du cache et tout le monde est content.


Sephi-Chan