Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Une excellente thèse sur Simile Exhibit
    • Olivier Rossel | Bonjour. Malgre les annees, avez vous toujours en memoire vos usages d’Exhibit? Je serais ravi d’en discuter avec vous. Cordialement, Olivier Rossel.
  • Utiliser le planificateur de tâches OVH (crontab) avec PHP
    • Max | Bonjour, comme faire pour appeler une version de PHP qui n’est plus proposée par défaut dans le manager ? J’essaie de lancer un cron avec php 5.3 mais le log affiche No such file...
    • Christophe | @absolument Merci pour ces précisions. Je n’ai pas mis en place de tâches cron récemment, mais j’ai reçu quelques notifications étranges d’OVH il y a quelques...
  • Récupérer le dernier auto-incrément MySQL avec PHP
    • Thy | Sujet toujours *très* utile en 2015 ! Je réponds à Serge tsimba qui récupère un « Resource id ». (Et à tous ceux qui ont le même souci mais qui ne le disent pas) :)...
  • Régler l’heure de serveurs virtuels sous Debian
    • Ares_XL | Il semble que sur Débian la commande « tzconfig &ra quo; soit dépréciée et remplacée par : « dpkg-reconfigure tzdata » elle donne accès à une...
 

Archives de la catégorie
Services en ligne

Utiliser le planificateur de tâches OVH (crontab) avec PHP

Site web OVH

De nombreuses applications web ont besoin d’exécuter périodiquement des scripts pour réaliser des tâches automatiques : purge de logs, traitement de données, lancement de sauvegardes… Quand vous avez la main sur votre propre serveur, tout va bien : vous utilisez les crontabs. Mais quand vos applications sont hébergées sur un serveur mutualisé, c’est déjà moins accessible !

Heureusement certains hébergeurs proposent des solutions alternatives efficaces. C’est le cas d’OVH avec son Planificateur de tâches. Une aide officielle existe, mais sans être inexacte, elle est un peu rapide. Du coup, j’ai passé plus de temps que prévu pour que tout fonctionne à merveille. Voilà comment s’y prendre.

Préparer son script PHP

Première étape : préparer le script de traitement PHP qui sera appelé par la tâche planifiée. Pour que le serveur appelle le bon interpréteur (dans notre cas PHP), le script a besoin de le définir en première ligne. Il faut donc ajouter cette ligne à votre script PHP :

#!/usr/local/bin/php

Elle se place en tout premier. On obtient donc ceci :

#!/usr/local/bin/php
<?
// La suite de mon script PHP...

Si vous avez besoin d’appeler d’autres scripts PHP ou de manipuler des fichiers, n’oubliez pas de travailler avec des chemins absolus. Par exemple en utilisant une variable qui définit l’endroit où est placé votre script :

$path = dirname(__FILE__);

Une fois votre fichier PHP placé sur le serveur, il faut lui ajouter le droit d’exécution (avec votre outil FTP, par exemple). Par défaut, les droits des fichiers sont calés en lecture + écriture (604), vous devez obtenir les droits en lecture + écriture + exécution (705).

Planifier la tâche

Côté serveur, c’est fini. Maintenant, il faut planifier la tâche. Pour cela, nous passons par le Manager OVH (ou Espace client, depuis peu). Le Planificateur de tâches est caché derrière Mutualisé > Hébergement > Services web.

Manager OVH - Crontab

Lors de l’ajout d’une tâche, nous devons définir ses propriétés :

  • Description de la tâche
  • Script à exécuter (chemin depuis la racine FTP de votre espace mutualisé)
  • Langage de script (avec le choix très important de la version de PHP à exécuter)
  • Logs par e-mail (permet de recevoir par e-mail un log de l’exécution du script)
  • Activation
  • Périodicité

L’interface est si simple que je n’ai rien à expliquer !

Propriétés d'une tâche planifiée OVH

Une fois validée, la tâche sera exécutée comme vous l’avez prévu. Enfin presque… Deux écarts constatés avec la théorie :

  • La mise en place de la tâche planifiée est parfois longue (j’ai dû attendre plus de 24h sur un de mes sites avant de la voir tourner).
  • Elle s’exécute rarement à l’heure prévue (la pile d’exécutions doit être longue, du coup j’atteins parfois des décalages de 20 à 30 minutes).

Suivre l’exécution de la tâche

Une fois tout ça en place, ça devrait tourner tout seul… Je suppose que vous testerez bien votre script d’abord, mais on n’est pas à l’abri de surprises à l’exécution. OVH vous offre donc les logs par e-mail ! La fonctionnalité est proposée dans le Planificateur de tâches et limitée à 10 envois (on peut la réactiver à la demande si besoin).

Vous recevrez alors un message du genre :

Vous avez demandé l'envoi des logs pour la tâche :

Numéro            : 123456
Heure de début    : 2013-10-08 02:21:02
Heure de fin      : 2013-10-08 02:21:19
Commande exécutée : /usr/local/bin/php.ORIG.4 -c /usr/local/lib/php.ini /[path]/[file].php
Code de retour    : 0
[...]

-------------------------==  Début  ==-------------------------

X-Powered-By: PHP/4.4.9
Content-type: text/html

#!/usr/local/bin/php

-------------------------==   Fin   ==-------------------------

Si tout se passe bien, rien de plus. Sinon, vous aurez une trace d’erreur. Un exemple avec un script qui tente une opération interdite sur un fichier gunzip :

-------------------------==  Début  ==-------------------------

X-Powered-By: PHP/4.4.9
Content-type: text/html

#!/usr/local/bin/php
gzip: /[path]/toto.gz already exists;        not overwritten

-------------------------==   Fin   ==-------------------------

Et la sécurité ?

J’ai trouvé quelques didacticiels sur le Planificateur de tâches OVH. Certains sont très détaillés (encore plus qu’ici), mais aucun n’aborde le sujet de la sécurité. Pourtant, la question est vraiment capitale chez OVH. En effet, votre espace web sur le serveur mutualisé a pour objectif de diffuser des contenus publiquement sur le web. C’est sa fonction première ! Donc, si vous placez un script maladroitement sur votre serveur, d’autres pourront jouer avec.

Un exemple que j’ai vu : un dossier mysql à la racine d’un site, contenant un script backup.php qui génère un fichier dump.sql au même endroit. Autant dire qu’il y a 99% de chances qu’un hacker du dimanche récupère vos données confidentielles dans l’année ! Remarquez que ce type de didacticiels n’est pas forcément innocent… Si 2000 personnes suivent l’exemple à la lettre, c’est d’autant plus facile pour des gens mal intentionnés. Lisez les didacticiels avec un peu de recul !

Parmi les règles de protection efficaces :

  • placer votre script dans un dossier racine qui n’est pas couplé à un sous-domaine (donc inaccessible par le web)
  • si votre fichier appartient à un dossier accessible sur le web, ajouter un fichier .htaccess pour interdire sa lecture et son exécution (directive Deny from all, par exemple)

La documentation de Magento 1.0 est en ligne

Depuis le lancement de la version 1.0 de Magento, tous ses utilisateurs attendaient (impatiemment !) sa documentation. Elle est désormais disponible sur le wiki officiel.

C’est long, précis et bien écrit. Amplement suffisant pour comprendre le fonctionnement et les atouts extraordinaires de cette plate-forme e-commerce.

Bonne lecture !

Piloter et sécuriser ses bases de données avec MySQL Proxy

MySQL Proxy

MySQL Proxy, proposé par MySQL AB, est le genre d’outils dont le rôle semble si évident qu’on se demande pourquoi il n’existait pas avant. Comme tout proxy, il récupère les requêtes destinées à la base de données, effectue des traitements et adresse une requête modifiée au serveur MySQL. Bien entendu, l’opération inverse est aussi gérée : MySQL Proxy sait récupérer un résultat de requête et le transformer avant de l’adresser au client initial.

Fonctionnalités

Après cette petite présentation, on peut se demander pourquoi on aurait besoin d’un proxy, puisque les services applicatifs (s’ils sont correctement architecturés et codés…) devraient envoyer une requête optimisée au serveur MySQL. Une petite liste des fonctionnalités finit par convaincre de son intérêt :

  • Analyse des requêtes
  • Filtrage et modification des requêtes et des résultats
  • Injection de requêtes
  • Load balancing
  • Exécution de scripts (basés sur le langage LUA)

Cas d’utilisation

Dans la pratique, on peut imaginer les situations suivantes :

  • Corriger les erreurs de syntaxe communes.
  • Garantir le fonctionnement d’anciennes applications utilisant des requêtes non supportées.
  • Supprimer du résultat un mot de passe demandé dans la requête.
  • Récupérer et fusionner avec le résultat des données externes à la base de données (fichiers, flux XML, RPC…)
  • Router les requêtes vers un autre serveur MySQL ou vers une autre base de données du même serveur.
  • Empiler un lot de requêtes et les contrôler avant de mettre à jour les tables.
  • Dupliquer les requêtes en temps réel sur deux bases différentes.
  • Exécuter un script shell avant ou après des modifications dans la base de données.
  • Interdire certains motifs de requêtes.
  • Verrouiller des tables selon le contexte.
  • Contrer les injections SQL non désirées.

On le voit, les possibilités sont infinies et ne dépendent que des contextes de production et de l’imagination des développeurs. MySQL Proxy permet surtout d’éviter d’intégrer la gestion de l’exploitation des bases de données MySQL dans les services applicatifs. Voilà enfin une saine séparation du travail du développeur métier et de l’administrateur MySQL !

Mise en oeuvre

MySQL Proxy est encore en version alpha et son fonctionnement n’est garanti que pour les versions MySQL 5.0.x et ultérieures.

Pour découvrir ses possibilités, O’Reilly Network propose un didacticiel clair et très fourni : Getting Started with MySQL Proxy.

Source : Linuxfr.org

PHP4, PHP5, PHP6 : la saison des grandes migrations

Logo PHP

Avec un été aux allures d’automne, j’ai eu envie de présenter un flux migratoire d’exception. Nul discours écologique dans mes propos, puisqu’il est question de PHP, le langage le plus répandu pour créer des applications web. Entre la mort de PHP4, la gestation de PHP6 et PHP5 qui tarde à s’imposer, voici un point sur la situation, les enjeux… et les risques.

PHP4 en fin de course

C’est maintenant officiel, PHP4 ne sera plus supporté à partir du 1er janvier 2008. En soit, l’annonce ne choque pas puisque PHP5 a pris le relais depuis 3 ans. Mais, sur le terrain, la percée de la version actuelle de PHP est moins évidente. En cause, les nombreuses applications PHP4 encore exploitées en ligne qui freinent les hébergeurs dans l’adoption de PHP5.

Migrer de PHP4 à PHP5

Sachant que la migration de PHP4 vers PHP5 devient obligatoire, comment la réaliser en douceur dans le temps imparti (5 mois) ?

Premier point : s’informer et comprendre la nécessité de migrer. Le site Go PHP5 est là pour ça !

Go PHP5
L’initiative Go PHP5 pour promouvoir une migration rapide vers PHP5.

Ensuite, il faut mettre le nez dans l’existant et y apporter les corrections ou les évolutions nécessaires pour le rendre compatible avec PHP5. On s’aidera des ressources mises à disposition par le PHP Group :

Préparer l’arrivée de PHP6

Maintenant, quid de PHP6 ? Quitte à migrer cet automne, autant en profiter pour préparer son arrivée ! On sait maintenant à quoi ressemblera la nouvelle mouture PHP et ce qu’elle implique pour les développeurs.

A la lecture de Prepare for PHP 6, on remarque vite que PHP sera beaucoup moins permissif. On ne regrettera pas le Register Globals, ni le Safe Mode (même s’il peut gêner quelques hébergeurs à la traîne).

Bien sûr, l’abandon des Magic Quotes imposera de retoucher de nombreuses applications PHP4 pour éviter les injections de commandes (pour attaquer une base de données, par exemple). On me rétorquera que PHP5 les désactive par défaut… ce qui veut dire qu’on peut les activer pour éviter de « perdre » du temps à mettre en conformité son code ! Avec PHP6, point de salut, il faut s’y coller !

Parmi les fonctionnalités les plus attendues, les namespaces pour la programmation orientée objet, le support natif d’Unicode, l’accélérateur APC par défaut.

Le plus inattendu est sans doute goto pour spécifier où continuer l’exécution du code ! A oublier de suite en programmation orientée objet…

Après le discours, la pratique. Voilà une petite check-list (tirée du magazine Programmez, juin 2007) pour faciliter l’arrivée de PHP6 :

  • Ne pas utiliser register_globals, mais $_POST, $_GET, $_COOKIE et $_REQUEST
  • Ne pas utiliser $HTTP_POST_VARS et $HTTP_SERVER_VARS, mais $_POST et $_SERVER
  • Mettre les directives magic_quotes_* à off
  • Ne pas spécifier le passage par référence dans l’appel de fonction, mais dans le prototype
  • Ne pas utiliser la fonction __autoload() (pratique mais très gourmande)
  • Ne pas mettre une variable derrière un break, mais une constante, un nombre… ou rien
  • Désactiver le safe_mode
  • Ne pas utiliser la librairie GD1 pour traiter les images, mais la GD2
  • Utiliser l’UTF-8 ou l’UTF-16

Le dernier point est, selon moi, le plus critique. Le support d’Unicode (UTF-8 ou UTF-16) impose de convertir la chaîne complète du développement : fichiers de code source, fichiers de données, base de données, navigateur web, etc. Or le support d’Unicode est loin d’être un réflex dans les projets web. Quel webdesigner se préoccupe de déclarer le support de l’Unicode dans Dreamweaver ? La question qui suit est : pourquoi la majorité des outils propose encore l’ISO-8851 ou CP1252 par défaut ? Bref, ce point dépasse le cadre des évolutions de PHP, mais deviendra un vrai Capharnaüm s’il n’est pas traité dans son ensemble.

Une opportunité pour les entreprises… et leurs prestataires

Inutile de tourner autour du pot : la migration nécessaire de PHP4 vers PHP5 demandera d’ici la fin de l’année un certain travail aux équipes de développement PHP de tous bords. Pour le bien des entreprises, c’est certain. Elles verront leur système d’information évoluer et gagner en maturité. Pour leurs prestataires aussi qui sauront profiter de l’opportunité pour aller plus loin qu’une simple mise en conformité iso-fonctionnelle.

Simile Exhibit : la version française est (presque) disponible

Logo Simile

Simile (Semantic Interoperability of Metadata and Information in unLike Environments), initié par le MIT (Massachusetts Institute of Technology), développe des outils open source robustes et efficaces pour manipuler des données, le tout reposant sur les technologies du web sémantique.

Parmi ces outils, le framework Exhibit est l’un des plus démonstratifs. Il offre une interface riche pour trier, filtrer et consulter des données complexes, via une page web. Sa classification à facettes rend la sélection et la consultation de données très rapides.

Seul petit défaut : Exhibit ne parle actuellement que l’anglais, l’espagnol et le suédois. Pas pour longtemps puisque je viens de terminer la french version ! Elle sera intégrée dans la version stable (v.1.0) et la version 2.0 (bientôt disponible).

Pour valider ce travail, je fais appel à votre bonne volonté afin de tester quelques exemples et me remonter les erreurs et bogues que vous pourriez y trouver (via les commentaires). Une fois corrigée, la version française sera mise à disposition de tous sur le serveur de Simile.

Pour le moment, les exemples reprennent ceux du site officiel. Je n’ai pas traduit les fichiers de données puisqu’ils ne font pas partie d’Exhibit. Par contre, les éléments d’interface (actions, sélections, tris, filtres, copies, messages, aide…) devraient tous être en français. J’ajouterai sans doute un exemple utilisant toutes les options d’Exhibit avec un fichier de données en français. Ce sera plus simple !

Si vous avez déjà mis en place Exhibit sur vos sites, vous pouvez également tester la version française en modifiant (temporairement, bien sûr) le lien de la version Exhibit officielle :

<script src="http://static.simile.mit.edu/exhibit/api/exhibit-api.js?views=timeline" type="text/javascript"></script>

doit être remplacé par

<script src="http://demo.christophelebot.fr/simile-exhibit-fr/api/exhibit-api.js?views=timeline&bundle=false" type="text/javascript"></script>

Votre lien peut ne pas comporter de paramètre views. Par contre, il ne faut pas oublier le paramètre bundle (utile pour ce test seulement) qui permettra de basculer en français. Petit détail, votre navigateur doit être configuré pour afficher en priorité les contenus en français.

Liste des exemples à tester

Merci d’avance pour votre participation à ce test !

Le côté obscur d’Internet – 1. L’erreur de Neuf Cegetel

Face à l’explosion des menaces en tous genres sur Internet (en augmentation de 1300% en 2006, les premiers mois de 2007 sont pires encore !), j’entame une série d’articles pour tenter d’y voir clair. Ce sera ma (petite) contribution pour rendre l’utilisateur mieux informé.

Pour commencer, rien ne vaut un exemple très démonstratif. Nous nous croyons tous assez malins pour éviter les pièges, mais il est extrêmement simple de tomber dans le panneau, surtout si nous sommes en confiance.

L’erreur de Neuf Cegetel

Neuf Cegetel propose à ses clients un espace pour gérer leur compte. Ce service est accessible à l’adresse espaceclient.neuf.fr, indiquée au dos des factures.

Jusque-là, rien de plus classique. Sauf que sur certaines factures, l’adresse indiquée comporte une erreur : à la place de espaceclient.neuf.fr, on lit espaceclientneuf.fr. Subtile différence que des petits malins ont exploitée !

L’exploitation de la faille

Le client qui entre l’adresse indiquée sur la facture, se sent parfaitement en confiance. Pourtant, le site qu’il voit n’appartient pas à Neuf Cegetel.

Espace client Neuf (le vrai)
Le vrai site.
Espace client Neuf (le faux)
Le faux site.

Vous allez me dire que les deux sites ne se ressemblent pas vraiment et qu’il est difficile de se laisser tromper. Oui, pour les clients qui utilisent souvent ce service, c’est évident. Mais combien d’autres ne vont le consulter qu’en cas de problème ? Pour ceux-là, impossible de repérer l’arnaque au premier coup d’oeil ! D’autant que les libellés de certains liens sont en parfaite adéquation : Mon compte, Ma facture, Service client, Assistance

Après avoir cliqué sur deux ou trois liens, l’utilisateur se rendra vite compte qu’il y a anguille sous roche et passera par le site officiel de Neuf Cegetel pour retrouver l’Espace client.

Ce petit jeu de cache-cache aurait pu être tout autre. Imaginez un faux site parfaitement identique au vrai. Vous souhaitez consulter votre facture, vous entrez votre identifiant et votre mot de passe… Scénario catastrophe !

Un détournement (presque) légal

Cependant, cet exemple n’est pas un cas de phishing. Ici, tout est légal (si ce n’est l’abus de confiance que Neuf Cegetel pourrait porter devant les tribunaux). N’importe qui peut déposer et exploiter le domaine espaceclientneuf.fr. Et donc profiter des erreurs de frappe.

Mais où est le profit ? Simplement dans les revenus tirés des liens sponsorisés, placés dans les pages du faux site. Avec quelques millions de clients Neuf Cegetel, les revenus peuvent s’avérer très juteux… sans rien faire d’autre qu’acheter un domaine.

Nous entrons dans l’univers très fructueux des domainers qui sera le sujet de mon prochain article…

Le SIREN devient obligatoire sur les sites web

Depuis le 9 mai 2007, les entreprises françaises ont pour obligation de préciser leur numéro SIREN dans les mentions légales de leurs sites web (décret n° 2007-750 du 9 mai 2007).

Pour rappel, certaines informations étaient déjà obligatoires (dénomination sociale, numéro RCS et ville d’inscription, coordonnées du responsable de la publication, coordonnées de l’hébergeur, numéro de TVA intracommunautaire pour les sites e-commerce, etc.).

Rue89 a choisi Drupal et explique pourquoi

Rue89

Dimanche 6 mai 2007, ce sera la fin du suspens : nous saurons tous à quoi ressemble… Rue89 ! Oui, c’est la date qu’a choisi cette équipe de journalistes passionnés et téméraires pour ouvrir un site d’information d’un nouveau genre. Rendez-vous donc dimanche à 18h (pas à 20h !).

Pour en diffuser le contenu, Rue89 a sélectionné Drupal, une plate-forme de gestion de contenu libre. Ce choix est argumenté dans un article du blog Rue89 :

Parce que nous avions pris la décision de démarrer le site au plus vite et de le faire évoluer au fur et à mesure des suggestions et critiques des utilisateurs, nous avons cherché une solution flexible et prête à l’emploi.

[…]

Nous avons opté pour la plateforme LAMP (Linux, Apache, MySQL, PHP) parce qu’elle est très largement répandue sur Internet, maîtrisée par de nombreux développeurs et qu’elle sert de base technologique à plusieurs outils de gestion de contenu Open Source performants et stables.

[…]

SPIP, bien que largement déployé, nous a paru dépassé et ne répondant pas à nos attentes en terme de fonctionnalités.

[…]

En matière de performance, Drupal apporte des résultats bien plus intéressants [que Joomla] à périmètre matériel constant.

Rue89 cite par ailleurs quelques études comparatives qui permettent d’y voir plus clair :

Les commentaires des lecteurs valent également de s’y attarder :

eZ Publish est bien une référence, mais une référence qui ne monte pas ! La faute a sa difficulté à monter en charge (cache PHP obligatoire) et à l’incapacité des développeurs à adapter le framework aux versions courantes de PHP/MySQL.

[…]

C’est un véritable plaisir que de développer sur ce framework [Drupal], notre équipe de dev est littéralement sous le charme !

Voilà beaucoup d’arguments solides en faveur de Drupal. Pour ma part, je l’avais testé sans être convaincu. C’était en 2001. La démonstration en ligne de la version actuelle m’a montré qu’il a beaucoup évolué depuis. Je le replace donc dans le peloton de tête des CMS LAMP (Content Management System sur plate-forme Linux, Apache, MySQL et PHP).

Il me reste à souhaiter bon vent à Rue89 qui aura déjà beaucoup à faire deux heures après son lancement !

Polémique sur l’application de la LCEN

Un petit mémo pour garder trace de la polémique qui enfle autour du décret d’application de la loi pour la confiance dans l’économie numérique (LCEN). J’ajouterai peut-être du contenu si les tremblements perdurent…

Dossier du Journal du Net

Un projet de décret pour surveiller le Web participatif et contributif :

FAI, hébergeurs et éditeurs de site ou auteurs d’un blog ouvert aux contributions des internautes devront bientôt stocker une multitude d’informations concernant les internautes. Adresses IP, informations bancaires et civiles, mais aussi pseudos utilisés sur les forums, mots de passe et questions secrètes devront être collectées et laissées à disposition des juges et de l’Etat. Surtout, les hébergeurs, éditeurs de site et blogueurs pourraient être obligés de conserver la trace de chaque version de contenus créés et modifiés par les internautes.

[…]

Objectif : permettre à l’autorité judiciaire ou administrative de remonter jusqu’à l’auteur d’un propos délictueux, ou suspecté, par exemple, de représenter un risque pour la sécurité de l’Etat.

[…]

Un hébergeur aura obligation de connaître la nature de chaque modification faite sur un site.

[…]

Le Groupement des éditeurs de services en ligne (Geste) s’en inquiète. […] L’association a fait valoir que les coûts de stockage, s’il tant est qu’il est possible techniquement, entraîneraient entre plusieurs centaines de milliers et un million d’euros de perte nette à chaque éditeur.

[…]

Un internaute pourra être poursuivi, en théorie, 4 ans après avoir publié un contenu sur Internet, sans même connaître les raisons pour lesquelles ces informations ont été recueillies.

Le dossier comporte un document PDF avec le texte du décret.

Le Monde.fr

Polémique sur la rétention des données informatiques par Stéphane Foucart :

La version de travail, que Le Monde a pu consulter, fédère contre elle les associations de défense des libertés et les industriels du secteur.

[…]

Le texte semble trop vague aux acteurs économiques du secteur, qui redoutent d’avoir à conserver l’intégralité des modifications apportées à un contenu.

[…]

L’association Iris rappelle que ces données peuvent être demandées dans le cadre « d’enquêtes administratives et non judiciaires » – c’est-à-dire menées hors du contrôle d’un magistrat.

L’Etat veut-il tuer Internet en France ? par Philippe Jannet (président du Geste) :

Cette mesure ne pourrait que déclencher une défiance immédiate des Français à l’égard de leur téléphone mobile ou fixe, comme à l’égard des acteurs français d’Internet, assassinant instantanément l’économie numérique française.

[…]

De l’avis unanime des spécialistes, c’est économiquement et techniquement impossible. Même les Etats-Unis de George W. Bush et leur « Patriot Act » post-11-Septembre n’ont jamais envisagé pareille conservation ou réglementation, qui soulèverait sans doute l’opinion publique américaine d’aujourd’hui, mais s’opère sans bruit en France.

[…]

Des données récoltées sur la base de requêtes administratives initialement motivées par la prévention du terrorisme pourraient se retrouver dans le dossier d’un juge d’instruction en charge d’une affaire de droit à l’image, de diffamation ou de contrefaçon, par exemple, sans que les personnes mises en cause par des traces informatiques vieilles de 4 ans, puissent connaître – ni contester – l’origine ou la pertinence de ces données, ni le contexte dans lequel elles avaient été recueillies, en dehors de toute procédure judiciaire, sans magistrat ni contradictoire, quatre ans auparavant.

[…]

Sous prétexte de lutter contre la menace réelle du terrorisme, l’Etat français prend – comme aucun autre – le risque de tuer une part non négligeable de l’avenir du pays, sans aucun état d’âme et dans le silence assourdissant d’une campagne présidentielle omniprésente sur Internet, mais muette sur le développement de l’Internet.

Une synthèse

Christian Fauré :

Ce qui émeut le plus Philippe Jannet, en tant que président du GESTE (TF1, Google France, M6, Skyrock, la presse en ligne, etc.), c’est que ces acteurs français de l’Internet vont devoir financer cette traçabilité pour le compte de l’État. L’article du Monde pourrait laisser croire que le GESTE s’inquiète de la confidentialité des données et des pratiques de ses clients : il n’en est rien.

Test d’interface : paiement d’amendes en ligne

La semaine dernière, j’ai reçu un joli papier (vert amende, bien sûr) me rappelant que la vitesse maximale autorisée sur autoroute est de 130 km/h. C’est agaçant (surtout pour un dépassement de 5 km/h sur une voie déserte) mais loin de moi l’idée de critiquer cette règle élémentaire de sécurité.

Vient l’heure de payer l’amende. Je ne suis pas un habitué du fait (c’est même une première), je fais donc l’effort de lire toutes les instructions. Ah tiens, on peut payer par internet ! Voilà l’occasion de tester une interface ! Ou comment prendre du plaisir à réaliser une tâche désagréable !

Un site dédié au paiement des amendes

Accueil amendes.gouv.fr
Page d’accueil du Service de télépaiement des amendes.

Le Ministère des Finances a mis en place un site dédié au paiement des amendes par carte bancaire. Pour protéger la transaction, la connexion entre le serveur et le navigateur web est cryptée (via SSL) et l’identité du service garantie par un certificat numérique.

Certificat SSL amendes.gouv.fr
Informations sur le certificat SSL.

Premier bémol : le certificat est émis par Verisign, entreprise privée américaine. Le Référentiel Général de Sécurité n’est donc pas encore en place.

L’accueil du service

La page d’accueil est des plus simples : un résumé pour expliquer le but du service, un lien pour y entrer et un autre pour quelques explications sur la sécurisation du site. Simple, clair (c’est vrai aussi qu’on n’arrive jamais sur ce site par hasard…), malgré un texte plutôt confus pour expliquer la transaction HTTPS.

Le code source est typique du web première génération : des textes en bitmap, des tableaux pour la mise en page, le tout généré par Dreamweaver (ses fonctions Javascript sont détectables entre mille) et FrontPage 6.0 (voir la balise META GENERATOR). Drôle de mélange, mais l’avantage est de rendre l’interface utilisable sous tous les navigateurs, même les plus anciens. On est loin du web 2.0, d’Ajax, du XHTML compliant, des CSS 2… mais aussi d’une interface accessible (au sens ergonomique).

Un petit tour du côté des requêtes m’indique que le service tourne sous Apache et que mes actions et leur traitement seront gérées par des scripts Java (le cookie de session trahit sa présence).

Saisie des informations

Saisie du numéro de l'amende
Saisie du numéro de l’amende.

Je passe à l’action. On me demande le numéro de l’avis d’amende et sa clé. Euh… il doit être tard, je ne vois rien de semblable sur le papier. J’ai bien un numéro d’avis de contravention mais pas d’avis d’amende. De plus, le formulaire web me propose 5 groupes de chiffres + la clé, la version papier n’a que 4 groupes de chiffres + la clé.

Heureusement, il y a une aide. Je fais abstraction du dictionnaire qui propose toutes les lettres de l’alphabet, alors que seules 8 lettres sont utiles… Les « pro » de la molette seront ravis ! Je clique donc sur « Où trouver mon numéro d’avis – Cliquez sur ce lien » (j’adore) et là, surprise ! Je vois bien les 4 cases de chiffres, comme sur mon papier. Je vois aussi à côté une version à 5 cases… Je sens que ça va être chaud.

Aide pour la saisie du numéro d'amende
Aide pour la saisie du numéro d’amende.

Survient le doute : vais-je pouvoir payer cette amende (pardon, contravention) en ligne ? Je tente le coup. Et j’ai bien fait : le premier groupe de chiffres détermine le type de contravention (forfaitaire, dans mon cas). Un petit Javascript élimine donc la cinquième case. Un autre se charge de déplacer le curseur de case en case. On tient le bon bout !

Informations liées à la contravention

Informations sur la contravention
Informations sur la contravention.

Le serveur fait son office et m’informe de mon avis de contravention. Cette page remplit son rôle, avec des textes concis et une fenêtre Questions / Réponses très utile.

Paiement de l’amende

Je passe au paiement. Une page me demande si je veux payer définitivement ou si je veux déposer une consigne (eh oui, si vous contestez la contravention, vous devez la payer avant de vous faire rembourser… éventuellement).

Paiement de l'amende (1)

Vient le formulaire tant attendu du paiement par carte bancaire. Là, on retrouve ses habitudes d’achat sur les sites e-commerce (adresse de livraison en moins…). Rien à dire, c’est bien fait.

Paiement de l'amende (2)

Je valide et j’obtiens un justificatif que je peux imprimer, sauvegarder, envoyer à une adresse e-mail ou recevoir par courrier. Dommage que ces options ne soient pas regroupées.

Paiement de l'amende (3)

La sauvegarde du justificatif sur ordinateur vaut vraiment le détour (un simple fichier texte contenant du code HTML illisible et sans aucun retour chariot). J’opte plutôt pour l’envoi par e-mail que j’obtiens aussitôt.

Conclusion

Ce petit jeu de cache-cache valait bien les 45 € que j’y ai laissés. Mais promis, je ne recommencerai pas.