Attention ! Etes vous sûrs d'avoir une bonne assurance emprunteur pour votre crédit immobilier ?


fév 13 2010

Référencement : un script PHP pour vos tests SEO

Tag: Coding, SEOnoreply @ 16:14

Voici un petit script générique pour vos tests d’indexation (par exemple si vous voulez savoir si googlebot suit les liens js, ou meta, ou autres…).

L’utilisation est très simple : vous pouvez définir un répertoire où le script pourra écrire ses logs (sinon par défaut il le fera dans le répertoire courant, sous réserve qu’il ait les droits en écriture) et votre clef d’API Google que vous pouvez obtenir ici : http://code.google.com/apis/ajaxsearch/signup.html. Si la constante GOOGLE_API_KEY reste vide, ça marche quand même…

Ensuite, votre page de test devra être en PHP et inclure le script. Donc par exemple, une page testindexationgg-djhsfgsdjhfgjsdg.php avec le contenu suivant :

<?php include ’seotest.php’; ?>

C’est tout !

Le nom de la page est utilisé pour le nom du test, donc soyez explicite. Pour surveiller les résultats, vous n’avez qu’à consulter l’url de la page de test elle même, mais en y ajoutant une QUERY_STRING ! Par exemple dans le cas présent : testindexationgg-djhsfgsdjhfgjsdg.php?consultation. Ceci afin que le fait de consulter la page ne perturbe pas les résultats du test (si vous utilisez la toolbar google ou autre par exemple).

En passant un paramètre cela évite aussi que le script log inutilement l’accès à la page.

La page vous présentera les logs des derniers accès, les résultats de recherche Google pour l’identifiant unique de votre test (automatiquement généré) et des infos sur vous (IP, referer, agent, etc. En fait cela sert à vérifier le cache des moteurs de recherche).

Bref, tout ce qu’il faut pour conduire rapidement des tests sérieux !

Vous pouvez récupérer le script ici : http://paste.taggle.org/index.php/view/28750015


jan 21 2010

Pinger en masse vos comptes Twitter pour éviter l’effacement

Tag: Codingnoreply @ 7:56

Comme vous le savez peut-être déjà, Twitter va prochainement libérer les noms d’utilisateurs inactifs. C’est à la fois une bonne nouvelle pour tous les joueurs qui vont tenter de mettre la main sur des comptes à fort potentiel, mais cela peut aussi être moins réjouissant pour les twittosquatteurs qui ont déjà de bonnes grosses listes de comptes à la cave et qui n’ont pas envie que la faucheuse viennent y faire le ménage !

Voici donc un petit script PHP qui va en quelque sorte pinger vos comptes inactifs (envoi d’un tweet « Ping » puis suppression du tweet si vous souhaitez garder les comptes aussi purs que la culotte d’une jeune jouvencelle).

Rien de bien compliquer : il suffit de stocker les informations de connexion de chaque compte dans un fichier texte nommé « mytwitteraccounts.txt » dans le même répertoire que le script.

Le format pour le fichier « mytwitteraccounts.txt » est simple : un compte par ligne sous la forme username:password. Par exemple :

username1:password1
username2:password2
username3:password3
etc.

Il vous suffira de lancer le script au moins une fois tous les 6 mois, et vous devriez être tranquilles !

<?php
$accounts = file(‘mytwitteraccounts.txt’);

foreach ($accounts as $account) {
        list($username,$password) = explode(‘:’,trim($account),2);
        $context = stream_context_create(array(
                ‘http’ => array(
                        ‘method’  => ‘POST’,
                        ‘header’  => sprintf("Authorization: Basic %s\r\nContent-type: application/x-www-form-urlencoded", base64_encode("$username:$password")),
                        ‘content’ => http_build_query(array(’status’ => ‘Ping !’)),
                        ‘timeout’ => 5
                        )
        ));
        if ($json = @file_get_contents(‘http://twitter.com/statuses/update.json’,0,$context)) {
                $json = @json_decode(trim(preg_replace(‘#((id)|(cursor))":(\d+)#’,\1":"\4"’,$json)));
               
                if ($json->id) {
                        echo "user $username has been pinged\n";
                        $context = stream_context_create(array(
                                ‘http’=>array(
                                        ‘method’  => ‘DELETE’,
                                        ‘header’  => sprintf("Authorization: Basic %s", base64_encode("$username:$password")),
                                        ‘timeout’ => 5
                                )
                        ));
                        if ($ret = @file_get_contents(sprintf(‘http://twitter.com/statuses/destroy/%s.json’,$json->id),0,$context)) {
                                echo "ping tweet has been deleted\n";
                        } else {
                                echo "unable to delete tweet\n";
                        }
                } else {
                        echo "unable to retrieve status id for user $username\n";
                }
        } else {
                echo "failed to ping user $username\n";
        }
}
?>

A noter que si vous avez vraiment de très grosses listes (vilain !), vous serez sans doute amenés à modifier un peu le script ou à éclater vos listes pour éviter le dépassement de mémoire. Mais à ce niveau de spam, je suppose que vous êtes parfaitement capable de vous passer de mon aide ^__^ !

Update: vous pouvez récupérer plus facilement le script à cette adresse : http://paste.taggle.org/index.php/view/65453140


jan 11 2010

Recherche et vérification automatique de proxy anonyme

Tag: Coding, Hacking, Non classé, SEOnoreply @ 11:36

Une lettre en principe n’est en vérité valable que dans la minute où elle a été écrite.

…disait je ne sais plus qui (Sacha Guitry ?). Et bien pour les listes de proxies, c’est pareil ! Encore plus lorsqu’il s’agit de proxies anonymes. Les Black Hat SEO le savent bien : trouver et maintenir des listes de proxies anonymes relève du casse-tête et on est souvent tenté de recourir à des solutions payantes pour pouvoir spammer en paix.

Et bien cette époque est révolue ! Dans un soucis de justice sociale, j’ai décidé de mettre à la disposition de tous un petit script PHP qui s’occupera de façon totalement automatisée de découvrir, tester et maintenir à jour votre liste de proxies anonymes. Le pourrissement des commentaires de blogs est donc désormais à la portée de tous !

Continue reading « Recherche et vérification automatique de proxy anonyme »


sept 28 2009

Un Proxy HTTP multithreads en PHP !

Tag: Codingnoreply @ 8:29

PHP Encore une classe éxotique qui sert surtout à montrer qu’on peut le faire, mais dont l’utilité n’est pas évidente :D Enfin, moi j’en avais besoin dans le cadre d’un projet plus vaste…

Les seuls pseudo-proxies que j’avais trouvé en PHP étaient en général des usines à gaz qui scrappaient une page pour essayer ensuite de réécrire les liens, bref pas ce que j’appelle un proxy. Je me suis donc inspiré de ce qui existe en Python pour coder un proxy basé sur les Sockets. J’avais commencé par utiliser curl pour retranscrire les requêtes du client, mais il est apparu assez rapidement que c’était bien inutile : un code 100% socket étant plus fiable, plus léger et sans doute plus rapide (quoique la performance est loin d’être la marque de fabrique de ce script, PHP n’étant pas du tout adapté à ce genre d’usages).

Le script consiste en une classe de base, qui peut fonctionner telle quelle, il suffit de le lancer, idéalement en ligne de commande :

php proxy.php [host port]

Si le script est appelé sans paramètres, il se lance sur l’adresse 0.0.0.0, port 8000. Pratique pour le tester en local, il suffit alors de configurer le proxy dans votre navigateur (proxy HTTP / HTTPS, adresse 0.0.0.0, port 8000, et c’est tout !).

Ce proxy implémente la méthode CONNECT, c’est à dire que vous pouvez l’utiliser même sur des pages sécurisées (HTTPS). Il supporte à priori toutes les méthodes possibles : GET, POST, HEAD, PUT, DELETE. Tel quel, il agit comme un proxy 100% anonyme, c’est à dire que si vous éxécutez le script sur votre serveur et que vous l’utilisez comme proxy, vous pourrez surfer avec l’IP de votre serveur. Pour le vérifier vous pouvez consulter cette page : http://whatismyipaddress.com/staticpages/index.php/advanced-proxy-test qui vous indiquera que vous n’utilisez pas de proxy mais affichera bien l’IP de votre serveur et non la votre !

Comme indiqué plus haut, pour les perfs il faudra repasser :) Pour améliorer ça, j’ai utilisé la fonction pcntl_fork() pour simuler le multithreading qui n’existe pas en PHP. Si les fonctions pcntl donc ne sont pas activées dans votre configuration PHP, le programme s’éxécute normalement et les requêtes se font donc une par une, à la chaine, ce qui donne une idée de ce à quoi doit ressembler le net en Afrique ou peut rappeler de vieux souvenirs à ceux qui sont nés avant l’invention de l’ADSL !

J’ai bien introduit une vague limitation du nombre de clients, mais il faudrait plutôt modifier ça pour limiter le nombre de processus fils engendrés simultanément si on veut éviter une catastrophe, ce qui n’est pas dur à faire, mais de toutes façon je vous rappelle pour ceux qui ne l’auraient pas compris qu’il ne faut pas utiliser ce proxy en PROD ou le laisser en accès libre sur votre serveur ! Le script est avant tout expérimental et il n’est pas sécure du tout en l’état. Si vous voulez utiliser votre serveur pour offrir des services de proxy au public, il existe de vraies solutions pour cela (SQUID par exemple). Si vous voulez juste l’utiliser pour vous même, je vous conseille au moins d’étendre la classe pour y ajouter un contrôle des clients (n’autoriser que certaines IP à utiliser le proxy, ou y ajouter un login/password).

Voilà le script, vous pouvez aussi le récupérer avec le show_source() de la dernière version ici : http://fbparis.com/proxy.php.

Continue reading « Un Proxy HTTP multithreads en PHP ! »


sept 09 2009

Sécuriser une session PHP

Tag: Coding, Hackingnoreply @ 8:43

hack router
En fait cet article aurait dû s’appeler : sécuriser une session à la façon d’un gros parano. Mais bon, c’est une petite classe très simple d’utilisation et bien pratique, surtout si votre site est hébergé sur un mutualisé où n’importe lequel de vos collocataires peut espionner et modifier vos fichiers de sessions.

Il s’agit donc d’une classe qui va se substituer à la fonction « session_start() » de PHP. Par la suite il n’y a absolument rien à changer dans votre code. Juste remplacer les « session_start() » par des « $sess = new Session(); » et vos sessions sont dignes de la NSA !

Que fait exactement cette classe ?

Cette classe permet deux choses :

  1. Signer la session en fonction de son contenu, d’une clef secrète et de variables qui identifient l’utilisateur (identifiant de session, adresse IP et useragent). Ceci permet d’éviter ce qu’on appelle le « Session Hijacking » ou le fait qu’en récupérant l’identifiant de session de quelqu’un d’autre on puisse se faire passer pour lui.
    Dans le cas où la signature ne correspond pas au contenu de la session, celle-ci est donc détruite (contenu et identifiant).
  2. Chiffrer le contenu de la session si vous le souhaitez (il suffit alors d’initier la session avec « $sess = new Session(true); »). Dans ce cas de figure, avant d’être signée la session est encryptée à l’aide d’un algo RIJNDAEL_256, et sera automatiquement décryptée à la réception !

Les variables de session utilisées sont totalement invisibles, vous pouvez faire un « print_r($_SESSION); » pour le vérifier, car elles sont automatiquement supprimées à l’initialisation de la classe, et recréées juste avant sa fermeture. Pas non plus de conflit possible avec vos autres variables de session, c’est vraiment tranquille !

Pour personnaliser la clef utilisée pour l’encryption et la signature, vous êtes invités à definir une constante SESSION_SECRET avant d’appeler la session.

Enfin, pour savoir si la session est passée correctement ou si elle a été réinitialisée vous pouvez regarder la valeur de « $sess->valid » (true si tout va bien, false sinon).

Continue reading « Sécuriser une session PHP »


août 24 2009

RSS To Twitter

Tag: Codingnoreply @ 11:38

Non ce blog n’est pas mort ! Pour preuve, je vous livre un petit bout de code tout simple, une fois encore pour un script PHP / Twitter.

N’ayant pas trouvé de service gratuit satisfaisant pour transformer un flux RSS en Tweets, j’ai dû ressortir l’éditeur de PHP !

Le script suivant est à appeler en ligne de commande par exemple. Vous pouvez le placer dans le cron pour qu’il soit appelé automatiquement de façon régulière.

Pensez juste à bien renseigner les deux constantes LOGIN et PASSWORD avec vos informations de compte Twitter et à mettre l’URL d’un flux RSS dans la variable $feedUrl. Et veillez également à ce que le script ait bien les droit d’écriture dans le répertoire ou au moins sur le fichier last_xxx.txt ou xxx est le login twitter (sinon c’est le flood assuré de votre compte twitter).

Petits avantages de ce script :

  • Utilisation de is.gd comme service de racourcisseur d’URL.
  • Optimisation de la taille du Tweet pour qu’il puisse être RT facilement !

Continue reading « RSS To Twitter »


avr 13 2009

Poster sur Twitter avec PHP

Tag: Coding, SEOnoreply @ 4:30

twitterTwitter est l’application de microbloging à la mode en ce moment, il n’y a qu’à voir comment des gurus du marketing tels Guy Kawazaki se la sont appropriée pour s’en convaincre !

La taille des « tweets » a beau être limitée à 140 caractères et le processus de publication réduit à son plus simple élément, ça reste tout de même très fatigant à gérer, d’autant que les beaux jours approchent et que nous passerons bientôt plus de temps à la plage que devant l’ordinateur (je suis désolé pour les gens du Nord…).

Alors que faire ?

Une fois de plus, la réponse tient en un mot : automatisation. Et en quelques lignes de PHP !

Continue reading « Poster sur Twitter avec PHP »


avr 12 2009

Poster automatiquement sur Wordpress avec PHP

Tag: Codingnoreply @ 2:57

Non ce blog n’est pas mort, seulement je suis occupé à d’autres projets en ce moment. C’est pourquoi l’article d’aujourd’hui sera bref, mais j’espère pourra vous être utile.

Il arrive parfois qu’on ait des besoins particuliers comme par exemple automatiser la publication de d’articles sur Wordpress qui ont besoin de manipulations côtés serveur avant d’être postées. Par exemple récupérer l’horoscope du jour.

Pour cela, plutôt que d’utiliser une batterie d’extensions qui vont faire mouliner encore un peu plus le bestiau, il peut être judicieux d’utiliser les fonctions XML-RPC de Wordpress, combinées à quelques lignes de PHP !
Continue reading « Poster automatiquement sur Wordpress avec PHP »


nov 08 2008

Suivre l’activité de Googlebot sur votre site grâce aux logs Apache

Tag: Coding, SEOnoreply @ 14:59

Vous avez été des milliers à vous plaindre du manque d’articles sur le référencement sur ce blog, je profite donc d’un petit script d’analyse de logs pour revenir dans le droit chemin !

Le suivi de l’activité des robots des moteurs de recherche sur votre site, et tout particulièrement du Googlebot, fait partie intégrante d’un bon référencement. Certes, Google mets à disposition des éditeurs depuis quelque temps déjà une série d’outils de suivi, les Google Webmaster Tools (GWT). C’est bien, mais pas toujours très complet et les mises à jours souvent aléatoires…

Les webmasters ont pourtant tout ce qu’il faut sous la main pour avoir des stats précises et surtout en temps réel pour suivre les bots : les logs du serveur Apache, souvent les meilleurs amis du référenceur !

Que faire avec ces logs ?

Les logs ne sont qu’un indicateur de plus pour l’analyse de la crawlabilité d’un site mais il y a de nombreuses façons de les utiliser. En vrac :

  • Identifier des liens cassés (404) ou d’autres erreurs rencontrées par le bot lors de ses visites
  • Si une page du site ne ressort pas dans l’index de Google, la première chose à faire est de vérifier si cette page a ou pas été crawlée par le googlebot
  • On peut également s’amuser à corréler la fréquence de passage du bot au PageRank dune page, ou à son traffic réel, ou encore à sa position dans les SERP
  • L’étude des visites du googlebot peut aussi servir à améliorer la structure des liens internes, détecter des pages isolées, etc.

Il y a encore sans doute de nombreuses autres apllications mais entrer dans le détail n’est pas l’objet de cet article.

Continue reading « Suivre l’activité de Googlebot sur votre site grâce aux logs Apache »


sept 14 2008

Exemple d’utilisation de la classe SpiceCurl : le ScoopeoBot

Tag: Codingnoreply @ 16:17

Je vous ai expliqué il y a quelques jours comment utiliser les fonctions curl de php pour récupérer des pages web et vous ai proposé à titre d’exemple une petite classe php5 prête à l’emploi (SpiceCurl). C’est l’occasion aujourd’hui de la tester, et pour cela j’ai imaginé une petite application bien sympa : un assistant pour Scoopeo, le ScoopeoBot :D

En effet, il faut se rendre à l’évidence : passer son temps à promouvoir ses propres scoops, pourrir ceux des autresmodérer le spam, plusser les copains et moinser les commentaires des nombreux boulets de Scoopeo toujours à l’affût d’un troll ou d’une indignation ; que de tâches répétitives qui nuisent à notre productivité et font perdre quelques précieuses places à notre employeur dans une compétition internationale toujours plus impitoyable (vous pouvez respirer) !

Heureusement, avec un peu d’imagination et de technique, nous allons pouvoir déléguer toutes ces tâches ingrates à un robot et ainsi nous remettre au travail l’esprit serein !

J’ai donc imaginé le cahier des charges suivant pour notre robot :

  • Le robot doit pouvoir gérer un nombre illimité de comptes (bien sûr nous n’en avons qu’un chacun, mais peut être vos amis vous demanderont d’utiliser votre robot donc autant prévoir)
  • Le robot doit reconnaitre les sites ET les comptes de vos amis, ainsi que des spammeurs
  • Le robot évitera d’être trop bête et de systématiquement cliquer les amis et moinser les autres par exemple
  • Pour ne pas surcharger les serveurs de scoopeo, le robots devra observer des pauses entre chaque action
  • Le robot devra pouvoir : voter ou modérer un scoop, plusser ou moinser un commentaire

Bon, ça me semble déjà pas mal donc voici ce que vous attendez tous, le code ; qui se présente sous la forme de 4 petites classes :

  1. ScoopeoAnonymousAccount : une classe de base pour définir un utilisateur de scoopeo non identifié, avec des méthodes pour récupérer une liste de scoops, une liste de commentaires et cliquer.
  2. ScoopeoAccount : étend la classe précédente et ajoute la possibilité de s’identifier avec un compte scoopeo.
  3. ScoopeoSource : définit une source sur scoopeo, ce peut être un membre de scoopeo, ou un domaine d’où provient des scoops. Cette classe a deux méthodes pour savoir comment réagir face à un scoop ou face à un commentaire de cette source.
  4. ScoopeoBot: la classe principale qui sert d’interface pour ajouter des sources, des comptes utilisateurs, des pages à analyser et qui va dire au robot ce qu’il doit faire.

Continue reading « Exemple d’utilisation de la classe SpiceCurl : le ScoopeoBot »


Page suivante »