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


oct 20 2010

Reprendre la main sur un grand nombre de comptes Twitter via oAuth

Tag: Codingnoreply @ 8:36

Cela fait déjà plusieurs mois que le système d’authentification par login / password pour l’API Twitter a été désactivé. Pour ceux qui comme moi avaient un grand nombre de comptes à gérer, voici un petit script qui va vous permettre, à partir d’une liste de login/password de reprendre la main sur les comptes et de pouvoir à nouveau y connecter vos bots !

Avant tout, vous devez créer une nouvelle application de type client, avec l’accès qui convient (Read & Write ou Read Only selon l’usage que vous en ferez) ici : http://dev.twitter.com/apps/new

Ceci fait vous devrez éditer le script et renseigner correctement les constantes CONSUMER_KEY et CONSUMER_SECRET.

Par ailleurs, n’oubliez pas de récupérer la librairie twitteroauth pour php ici : http://github.com/abraham/twitteroauth. Les fichiers twitteroauth.php et Oauth.php doivent être dans le même répertoire que le script en question.

Enfin, placez dans le répertoire du script un fichier TWITTER-ACCOUNTS-LIST.txt formaté de la façon suivante :

LoginTwitter1:Password1
LoginTwitter2:Password2
...
LoginTwitterN:PasswordN

Vous pouvez ensuite lancer le script en ligne de commande, et pour chaque nouveau compte il générera un token oAuth que vous pourrez utiliser quand bon vous semble pour commander vos bots (avec la classe TwitterOAuth par exemple) !

Les tokens sont de la forme suivante :

Array
(
    [oauth_token] => ...
    [oauth_token_secret] => ...
    [user_id] => ...
    [screen_name] => ...
)

Et seront stockés sous la forme d’un tableau associatif username=>token serializé dans le fichier .dat correspondant au nom du script.

Vous l’avez compris, tout cela est assez technique et cet article s’adresse à ceux qui sauront l’utiliser sans venir me harceler de questions (auxquelles je ne répondrais pas) dans les commentaires :D

Continue reading « Reprendre la main sur un grand nombre de comptes Twitter via oAuth »


août 30 2010

Quelques bookmarklets sympas pour Iphone / Ipad

Tag: SEOnoreply @ 6:37

Il ne manque pas grand chose sur l’Ipad et pour ceux qui comme moi passent de plus en plus de temps dessus voici quelques astuces pour ajouter les fonctions suivantes au navigateur Safari intégré :

  • Sauver la page dans Delicious
  • Voir les headers HTTP de la page courante
  • Faire un whois sur le domaine courant
  • Montrer les liens nofollow (à la manière de l’extension Firefox Search Status)
  • Afficher le source de la page

Pour ce faire nous allons ajouter des bookmarks spéciaux ; je vous recommande de les installer dans la barre des signets, d’aller dans les préférences Safari et de mettre « Toujours afficher la barre de signets » à 1.

Comme j’ai la flemme d’expliquer aux noobs comment procéder pour ajouter un bookmarklet, ceux qui ne savent pas peuvent commencer par suivre la procédure pour ajouter le bookmarklet Instapaper. C’est en anglais mais c’est très bien expliqué, et Instapaper est un service que je vous recommande de toutes façons ! Ceux qui utilisent par exemple Echofon Pro peuvent aussi ajouter le bookmarklet « Tweet this » et leur barre des signets sera complète (suivre les instructions indiquées dans votre client Twitter).

Pour les autres, voici les liens et le code à copier-coller pour obtenir les fonctionnalités promises (vous pouvez cliquer les liens avant pour vérifier que ça fonctionne correctement chez vous).

Sauver la page dans Delicous

Afficher les headers HTTP

Faire un whois

Mettre en valeur les liens nofollow

Pour le bookmarklet qui affiche la source d’une page, je vous invite à suivre les instructions sur la page de l’auteur ou à copier directement le code ici : http://www.ravelrumba.com/wp/wp-content/code/view-source.txt.


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 »


sept 07 2009

Une application pour protéger son compte Twitter

Tag: Hackingnoreply @ 7:59

hack router
Pour ma première application Twitter avec oAuth j’ai fait simple.

Le constat : n’importe quel service à qui vous avez donné vos codes d’accès Twitter (ce qu’on ne devrait jamais faire) où n’importe quelle application à laquelle vous avez accordé les droits en lecture et écriture via oAuth peut en quelques secondes s’accaparer votre compte Twitter !

Pourquoi ? Parceque Twitter autorise la modification de l’adresse email via l’API et qu’il est ensuite enfantin de déclencher une procédure de changement de mot de passe, même de façon totalement automatisée (aucun captcha ou autre protection anti-robot n’étant utilisés lors de cette procédure).

C’est d’ailleurs un peu comme cela que fonctionne mon application, mais avec l’objectif de vous rendre votre compte en cas de vol plutôt que pour vous le voler. Et je n’ai pas pousser l’automatisation du processus jusqu’au bout : lors d’une tentative de récupération de votre mot de passe, l’application va jusqu’à déclencher l’envoi du lien adequat par twitter et c’est à vous de faire le reste (à savoir : choisir un nouveau mot de passe).

A cause de cette possibilité de modifier l’adresse email d’un utilisateur, la sécurité du « login avec twitter » ne repose pas seulement sur les serveurs de twitter, mais dépend également de TOUS les services que vous avez autorisés en lecture / écriture via oAuth ou en filant vos codes d’accès ! Il suffit qu’un seul se fasse hacker pour pouvoir récupérer votre compte et par effet de dominos tous les comptes avec lesquels vous vous identifiez avec twitter… C’est assez embêtant je trouve.

Petits conseils si jamais vous vous faites voler votre compte Twitter et que par chance vous utilisiez mon application :

  • Ne remettez pas le même mot de passe qu’avant ! (ça parait évident mais bon, il y a sûrement quelques abrutis parmi vous)
  • Allez directement dans « Settings / Connections » et révoquez les autorisations de tous les services qui ont un accès en écriture (update), sauf mon appli bien sûr !

Pour info avec mon application, une adresse email ne peut etre utilisée qu’une seule fois (donc si vous avez plusieurs comptes twitter il vous faudra aussi plusieurs adresses email) et un compte twitter ne peut être protégé que par une seule adresse email (ça vaut mieux hein !).

Notez aussi que si la personne qui vous a volé votre compte s’empresse de révoquer l’autorisation de mon application (comme devrait le faire un hacker efficace), ça ne fonctionnera pas.

L’application est ici : Recover Stolen Account

Edit : Twitter a bien reçu le message via le groupe de support pour l’API et envisage de remédier à ce problème ! Bonne nouvelle donc.


sept 07 2009

Pour en finir avec les piratages de wordpress

Tag: Hackingnoreply @ 7:04

…ou du moins pour limiter la casse j’imagine. Vous pouvez toujours protéger le dossier /wp-admin avec un .htaccess maison, ce qui devrait calmer de façon radicale les ardeurs des bots !

C’est assez simple :

Dans votre dossier wordpress/wp-admin/ vous créez un fichier .htaccess en lecture seule et avec le contenu suivant :

AuthType Basic
AuthName "Admin WORDPRESS"
AuthUserFile /home/wpadmin.pwd
Require valid-user

Dans cet exemple, le fichier contenant les acces autorisés se trouve dans /home/wpadmin.pwd mais vous pouvez très bien le mettre ailleurs.

Pour créer ce fichier wpadmin.pwd c’est très simple, dans une console ssh tapez la ligne suivante :

htpasswd -cb /home/wpadmin.pwd login password

Et pour ajouter d’autres utilisateurs :

htpasswd -b /home/wpadmin.pwd login password

Vous pourrez aussi modifier un mot de passe ou supprimer un acces, je vous laisse lire la doc de la commande htpasswd hein !


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 »


Page suivante »