lundi 8 février 2010

A l'assaut du trio infernal


Pratiquement depuis qu'il y a assez de linuxiens pour acheter des journaux spécialisés, on entend parler dans ces derniers d'un "trio infernal". Ce bel exemple de cliché et de langue de bois journalistique désigne un ensemble de trois logiciels: Apache, MySQL, PHP. Chacun de ces trois bazars pris individuellement ne peut intéresser que quelques informaticiens spécialisés, mais l'assemblage des trois engendre une merveille dont vous avez probablement entendu parler, chers lecteurs: le web, pas moinsse.

Bon, tout ce qui se trouve sur le web n'est pas fait avec le trio infernal au grand complet. Moi-même, qui ai pondu au fil des ans une grosse demi-douzaine de sites web, je n'ai jusqu'ici eu recours à aucun des trois pour y arriver. Mais le web n'aurait assurément pas l'importance qu'il a aujourd'hui s'il n'était organisé autour de ces trois larrons. Ils méritent donc bien une présentation.

Apache, symbolisé dans l'image ci-dessus par l'espèce de plume rouge (en fait, je crois qu'elle est multicolore, mais comme je suis daltonien, je simplifie), c'est le logiciel qui permet à un ordinateur de réagir aux sollicitations qu'il reçoit au travers du web. Quand vous consultez un site quelconque et que vous cliquez sur un lien quelconque, boum, voilà-t-il pas que de l'information apparaît sur votre écran alors qu'elle n'est pas enregistrée sur votre machine. Eh bien, le bazar qui a reçu votre demande d'accéder à cette information et qui vous l'a aussitôt expédiée, c'est presque toujours Apache. Ce nom d'indien est un jeu de mots à deux balles comme les geeks les aiment: ça se prononce "apatchi", donc "Apache software" se prononce "a patchy software" et se traduit par "un logiciel fait avec du sparadrap". Entendez que c'est un bazar fait de pièces et de morceaux qu'on a rassemblés à la va-vite et sans élégance. Etonnante appellation, non? C'est qu'Apache est un logiciel libre, sans but lucratif, initié au départ par des informaticiens bénévoles qui voulaient juste que ça marche le plus vite possible et tant pis si c'était moche. Or, ça a tellement marché que ça a permis l'existence du web, mais oui. Chaque informaticien de la planète a recours aux services d'Apache des dizaines de fois par jour. Quand ça marche (et la plupart du temps, ça marche), ça s'appelle du surf sur le web et personne n'a conscience de l'existence d'Apache. Quand ça débloque, généralement pas à cause d'Apache mais plutôt parce qu'un site web a été mal conçu, c'est encore Apache qui vous signale des erreurs, dont la fameuse page "404 Not found" qui vous signale que le document que vous avez demandé n'existe pas sur le serveur que vous consultez, en tout cas pas sous le nom sous lequel il a été réclamé. La prochaine fois que vous vous prendrez un 404 Not found dans la figure, au lieu de vous contenter de pester "saleté d'ordinateur" comme d'habitude (alors que pour une fois, votre ordinateur n'y est pour rien), lisez donc ce qui est écrit en tout petit en bas de la page: vous pourrez vraisemblablement y lire le mot "Apache" et vérifier par là-même que je ne vous raconte pas d'âneries.

MySQL, dont le logo représente un zoli dauphin, c'est un système de gestion de base de données très puissant et gratuit. Une très forte proportion des administrateurs système de la planète utilisent donc ce bazar pour stocker tout et n'importe quoi (principalement du texte, mais en trichant un peu on peut y mettre beaucoup d'autres cochonneries) et le retrouver très vite à la moindre sollicitation. Comme le web sert à diffuser tout et n'importe quoi, MySQL y est extrêmement utilisé.

Quant à PHP, dont le logo d'une consternante laideur représente... les trois lettres PHP (les graphistes ne se sont pas foulés, cela étant probablement dû au fait qu'en place de graphiste on a dû demander à l'informaticien le moins débordé de l'équipe de pondre un logo en cinq minutes pour faire taire ceux qui le réclamaient), eh bien PHP est le bazar qui fait le lien entre Apache et MySQL, et transforme le boulot de ces deux gentils messieurs en des pages web plus ou moins esthétiques, plus ou moins lisibles. C'est un langage de programmation informatique dont la principale fonction est... d'écrire du code informatique, ce qui, je le suppose, suffit à vous convaincre que ça n'est pas fait pour les débutants. Eh bien, vous vous trompez entièrement: PHP est fait pour des débutants (initialement, "PHP" voulait d'ailleurs dire "Personal Home Page") avec un effort particulier pour les nullards qui veulent s'y mettre en n'ayant rien appris de sérieux -- et pour le malheur de la planète informatique, c'est relativement efficace: des informaticiens même très mauvais arrivent à tirer quelque chose de PHP. Ca a l'air d'être sympa comme projet... Mais c'est un vrai tas de boue, inélégant au possible, susceptible de continuer de tourner cahin-caha même quand il a été programmé avec le pied gauche d'un cul-de-jatte... ce qui fait qu'un programme PHP même très mal écrit peut encore être enrichi ou plutôt alourdi même par des brêles complètes, jusqu'à qu'il soit tellement emberlificoté que plus personne n'y comprend plus rien et notamment pas les informaticiens qu'on paye pour essayer de le rendre moins dégueulasse. Si vous voulez voir quel type de daube informatique ça peut produire, connectez-vous sur le site de la SNCF.

Si le trio Apache-MySQL-PHP est infernal, c'est essentiellement à cause de PHP, ou plutôt des connards qui l'utilisent avant d'avoir appris à s'en servir. Seulement, comme PHP a été conçu à l'intention des nullards, et que nous avons tous été enfants avant que d'être hommes (comme disait mon pote Descartes), tous ceux qui apprennent PHP réussissent à s'aventurer sur le web avant d'avoir appris les risques qu'ils y courent.

Ce qu'ils cherchent à faire, c'est à faire en sorte que leur ordinateur devienne un serveur, c'est-à-dire qu'il puisse réagir aux sollicitations venant d'autres machines connectées à Internet. Et vite, en plus. Avec PHP, ils y arrivent: leur beau-frère peut consulter de sa lointaine province, sans se déplacer, les photos de vacances qu'ils ont mises à disposition de la planète sur leur meugnon petit PC avec son Windows pourri (oui, le trio infernal peut fonctionner sous Windows; même quand il est programmé par des windoziens, ce qui est quand même très fort): la machine de Lutèce répond à ce que demande la machine de Trifouilly. Ou de Kiev, de Khabarovsk, de Jersey, de Ouagadougou ou Tegucigalpa. Ah zut! On l'avait oublié, il n'y a pas que des gentils sur Internet. Et ce qu'un gentil nullard peut faire avec PHP, un méchant nullard peut le faire aussi. Et si en plus le méchant est un peu plus compétent en informatique que l'employé de Microsoft moyen (ce qui n'est vraiment pas difficile), il va sans trop de peine utiliser pour ses coupables visées le trio infernal tournant sur la machine du nullard sans même avoir besoin de savoir où elle se situe au juste. Et la machine du neuneu équipée du trio infernal se met, à l'insu du neuneu, à envoyer du spam; à attaquer des réseaux bancaires pour essayer de trouver les mots de passe; à faire transiter les données cryptées des narcotrafiquants; à héberger de la pédopornographie. Ben ouais, ça existe vraiment.

Résultat des courses, les développeurs d'Apache, de MySQL et de PHP passent leur temps à sécuriser leurs bazars pour que les vilains pas beaux aient de plus en plus de mal à en prendre le contrôle à distance. Et pour cette raison, le trio infernal devient de plus en plus infernal: c'était déjà un tas de boue emberlificoté offrant des trous béants aux cybercriminels (oui, l'image est un peu hardie, mais qu'est-ce que vous croyez, j'ai bien le droit de faire du style). Eh bien, par à-coups, ça devient parfois aussi tâtillon qu'un fonctionnaire de l'état civil fan de Brice Hortefeux quand un mal blanchi né à Singapour d'un père congolais et d'une mère kabyle vient déclarer qu'il a perdu son passeport. Houlà houlà houlà, t'es qui, toi? Tu peux le prouver? Et d'abord, qu'est-ce que tu viens fiche sur mon site web? Tu me dis que tu es le même que celui qui est déjà venu il y a dix minutes, mais qu'est-ce qui me force à te croire?

Les cybercriminels s'en foutent probablement pas mal, en revanche les informaticiens pas tout à fait nullards qui s'attaquent au trio infernal trouvent ça un peu crispant: car les manip données comme tout à fait orthodoxes dans les manuels de 2008 sont devenues totalement acrobatiques, voire interdites, dès le premier trimestre 2009. Toutes les douze heures environ, l'un des trois loustics du trio infernal vous signale que vous devez absolument passer de la version 2.3.227 à la 2.3.229a bêta, qui n'a pas été testée à fond, à moins que vous ne préfériez la 2.3.228 qui, elle, a été testée, même qu'on sait qu'elle ne marche pas dans certains cas particuliers très rares, mais si, prenez-la quand même, ça devrait aller.

Dans le monde du logiciel libre où les forces du bien sont continuellement à l'oeuvre, il est apparu un projet sympathique, nommé Xampp ("amp" dans "Xampp" signifie "Apache-MySQL-PHP"), qui se propose de faire tourner le trio infernal sous Linux (c'est là que ça marche le mieux, mais ça existe aussi, hélas, sous Windows) dans deux configurations de base: 1) totalement ouvert à la cybercriminalopédopornographie, pour les tests; 2) totalement fermé au point qu'on n'arrive pas à s'en servir même sur une machine déconnectée se consultant elle-même avec les privilèges de l'administrateur système. Entre les deux configurations, il y a un peu de place pour les réglages qui vont bien... mais vous devrez les faire vous-même parce qu'il faut prendre en compte tellement de cas particuliers que personne ne peut automatiser ça.

Eh bien, je m'y suis attaqué hier. Souhaitez-moi bonne chance.

Aucun commentaire:

Enregistrer un commentaire