Dernièrement, je me suis trouvé confronté à un problème plutôt idiot, mais néanmoins gênant. J'utilise depuis quelques années maintenant les services offerts par un site. J'ai dû me connecter à ce site dernièrement, mais
- je ne me souvenais plus de mon mot de passe !
- la réinitialisation du mot de passe était difficiel car pas moyen de me souvenir de l'adresse de courrier électronique employée pour créer le compte !
Damned! Comment faire ?
Et bien, se féliciter d'être paresseux ! En effet, pour profiter des services de ce site, je m'étais écrit un petit robot en Perl avec LWP. Ce brave outil fonctionnait toujours puisqu'il s'appuyait sur un cookie. Ce cookie était dans le format propriétaire de HTTP::Cookies, je devais donc le convertir dans le format de Mozilla Firefox.
Aussitôt dit, aussitôt fait. Une petite recherche sur le web, et je trouve un article des mongueurs expliquant un cas de conversion de cookies, mais de Mozilla vers LWP. Après quelques tâtonnements, j'ai finalement adapté le programme. Le voici :
#!/usr/bin/env perl
use strict;
use warnings;
use HTTP::Cookies;
use HTTP::Cookies::Mozilla;
use Getopt::Long;
my $config = {};
GetOptions( $config, 'from=s', 'to=s' );
die _usage() unless _valid_config( $config );
my $input_jar = HTTP::Cookies->new( file => $config->{from} );
bless $input_jar, 'HTTP::Cookies::Mozilla';
$input_jar->save( $config->{to} );
sub _usage {
return "Usage: $0 --from cookies.lwp --to cookies.mozilla\n";
}
sub _valid_config {
my $config = shift;
if (exists $config->{from} and exists $config->{to}) {
return 1;
} else {
return 0;
}
}
Il m'a donc suffit d'appeler ce programme de la manière suivante : $./cookies_converter -f my_lwp_cookie.txt -t /path/to/mozilla/profile/cookies.sqlite
Ensuite, j'ai pu aller sur la page de mon compte pour changer mon mot de passe et mettre une adresse de courrier électronique plus récente.

Laisser un commentaire