
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.