Josh Breckman travaillait pour une entreprise qui avait obtenu un contrat pour le développement d’un CMS (content management system, ou système de gestion de contenu) pour le site web d'une agence gouvernementale plutôt importante. Le gros du projet constituait à développer le CMS pour que les employés soient capables de construire et de maintenir le contenu de leur site.
Comme ils avaient déjà un site web existant avec un contenu conséquent, les utilisateurs voulaient profiter de la migration pour réorganiser et recharger leur site dans le nouveau système avant que celui-ci ne soit mis en ligne. Comme vous pouvez l'imaginer, ce fut un processus très chronophage. Mais, après plusieurs mois, ils avaient finalement remis tout le contenu dans le nouveau système et l'avaient ouvert sur le World Wilde Web.
Tout semblait fonctionner correctement pendant les quelques jours suivant la migration. Mais, au sixième jour, les choses commencèrent à se gâter : tout le contenu du site web avait complètement disparu et les pages web pointaient toutes sur la page par défaut "veuillez saisir une page de contenu". Oups...
Josh fut appelé en urgence pour trouver la panne et remarqua qu'une adresse IP particulière avait supprimé tout le contenu du système. L'adresse IP n'appartenait à aucun hacker du bout du monde qui aurait voulu détruire une organisation gouvernementale. Non, l'adresse appartenait simplement à googlebot.com, le robot d'indexation de Google. Oups.
Après un peu de recherche (et de lutte pour trouver une sauvegarde non corrompue), Josh comprit le problème. Un utilisateur avait copié et collé du contenu entier d’une page du CMS sur une autre, incluant un lien "edit" pour éditer le contenu de la page. Normalement, cela n'aurait pas du poser de problème car un utilisateur externe se voit demander de saisir son login et mot de passe. Mais, le système d'authentification du CMS ne gérait pas les techniques de hack sophistiquées du robot de Google. Oups.
Comme on peut le deviner, le robot de google n'utilise pas de cookies, ce qui signifie qu'il peut facilement contourner le système basique de vérification "estConnecte = faux" du cookie. De même, il ne se soucie pas du code JavaScript des pages web, qui en temps normal devrait rediriger les utilisateurs qui ne sont pas connectés. Par contre, il suit tous les hyperliens de chaque page qu'il trouve, incluant bien évidement ceux nommés "Supprimer la page". Oups
Finalement, Josh fut en mesure de recharger une version pas trop vieille du site. Il remonta le problème à sa direction -- que la sécurité pouvait être contournée en désactivant les cookies et le JavaScript -- mais ils ne saisirent pas vraiment où était le problème. A la place, ils dirent au client de ne JAMAIS copier coller du contenu d'une page dans une autre.