
Faire un miroir de sauvegarde locale d'un site web tiers avec wget et faire une bibliothèque utilisable hors d'internet
- 10 minsLes menaces auxquelles nous sommes confronté·es sont de plus en plus nombreuses, violentes et les informations auxquelles nous pouvons accéder sont de plus en plus compromises. D’autant lorsque nous dépendons d’entreprises ou d’institutions publiques pour des services critiques. Il y a aussi l’intensité croissante d’aléas liés aux dérèglements climatiques.
L’un des moyens d’atténuer ces risques consiste à effectuer des sauvegardes, qui peuvent ensuite être utilisées pour la restauration de sites web et mettre ces sauvegardes là où peu de personnes et d’organisations ont accès ; autrement dit les mettre dans notre espace de stockage local qui nous appartient. Parmi plusieurs stratégies et différentes approches techniques, nous pouvons opter pour celle du miroir.
En informatique, un miroir est une copie exacte d’un ensemble de données. Sur le Web, un site miroir est une copie exacte d’un autre site web
Wikipedia, Site miroir
Une copie en miroir est un duplicata identique à l’original fait à un instant T
. Et nous pourrons ajouter à notre copie miroir des modifications faites sur l’original ultérieurement ou faire une copie miroir nouvelle pour comparer deux versions. Les copies en miroir peuvent aider à restaurer des sites web supprimés ou défacés ; les copies en miroir faites sur un appareil peuvent servir à accéder à des informations sans connexion internet depuis cet appareil.
Un exemple de cas où
wget
n’est pas nécessaire pour faire un miroir : le site web que vous souhaitez sauvegarder à un code source ouvert et libre d’accès. Il est alors plus judicieux de cloner le dépôt de ce code source et d’effectuer des mise à jour du clone par la suite.
Il existe pléthore de documentations, billet de blogs, tutoriels, vidéo sur la mise en miroir d’un site web. Disons alors que ce billet de blog s’inscrit dans une « pédagogie par la répétition ».
wget
peut fonctionner avec Windows, macOS, Linux, Android, et d’autres systèmes d’opération.
Si cette démarche vous est trop difficile techniquement, envoyez moi un message discret par le moyen qui vous convient et je serais joie de discuter, de vous aider, et peut-être même de faire un miroir de vos ressources web.
Pourquoi faire cela ?
Liste non-exhaustive
- Pour accéder à des informations publiées sur le web sans avoir accès à internet
- Sauvegarder le travail d’individus ou d’organisations
- Collecter des éléments de preuves
- Aider des individus et des organisations face à des ennuis potentiels ou déjà présents
- Participer à un réseau d’entraides et de solidarités
En ce qui me concerne, la technique n’est qu’accessoire. Ce qui compte profondément et contribue à structurer des capacités collectives ce sont les échanges, les discussions et les rencontres qui peuvent être occasionnées par ce genre d’opérations.
Pour un exemple de cas d’usage de mise en miroir, l’article « Soutenir la littérature trans sans les GAFAM », publié par Alex traduisant l’original de Bethany Karsten, pourra donner l’envie de sauvegarder en local https://thetransfemininereview.com/.
Très peu de personnes et d’organisations disposent de leur propre infrastructure de stockage et d’hébergement web. Ainsi de nombreuses ressources sont rendues inaccessibles (connexions internet interrompues ou censurées, fichiers effacés, saisies des serveurs, piratage, etc). Nos efforts disparaissent, nos atouts sont détruits, nos ressources sont volées.
De plus, l’absence de stockage viable à long terme pose des problèmes aux organisations qui peuvent être tenues par la loi de conserver des données, ainsi qu’aux particulièr·es qui souhaitent réduire les risques sur la durée de conservation de leurs données.
Alors que les individus et les organisations génèrent des quantités toujours plus importantes d’informations, sous la forme de pages web, qui doivent être stockées à long terme, les coûts de stockage continuent d’augmenter et le stockage numérique fiable et à long terme se fait rare.
Il y a aussi l’option complémentaire avec du stockage froid : stockage de données archivées qui nécessite une conservation à long terme, mais qui n’exige pas un accès continu et/ou ne nécessite pas une accessibilité aisée au dispositif.wget
(que je vais décrire ci-après) sur lequel on copie notre miroir et qui serait ensuite entreposé dans un endroit sécurisé, hors connexion réseaux internet et électrique.
Le chiffrement des données stockées est primordial !
Pourquoi le stockage froid est-il important ?
- Les données sont copiées sur un appareil dont le système est à l’arrêt lorsque celui-ci est inutilisé.
- On intègre cette sauvegarde froide dans la stratégie « 3-2-1-1-0 » de sauvegarde :
- Utiliser 2 supports de stockage différents (celui avec le miroir et celui avec la copie du miroir)
- Avoir au moins 1 copie physiquement entreposée ailleurs sur un dispositif hors réseau
- Votre ordinateur, et autres appareils domestiques quotidien, peuvent être détruits par une catastrophe, ou perdu, ou volé, ou saisi légalement.
Wget et le miroir
Important ! : Demandez toujours aux personnes qui sont en charges du site web qui vous voulez mettre en miroir avant d’agir ! Le serveur sur lequel vous faites des requêtes pour être monté avant de mesures de sabotages contre des “IA” et/ou robot de scrapping et vous remplir littéralement de centaines de giga de détritus. Voir par exemple, cette documentation en anglais sur l’usage du logiciel iocaine et celle-ci. Aussi, un site web peut contenir des pages avec de ressources volontairement malicieuse et/ou vérolées.
wget
permet de faire des requêtes depuis une machine sur une machine distante, par exemple depuis votre ordinateur sur un serveur hébergeant le site web https://thetransfemininereview.com/. Une des conséquences par ces requêtes est que vous transmettez des informations comme votre adresse IP, la date et heures des requêtes, et bien d’autres données.
Nous verrons plus loin quelques mesures pour atténuer ces conséquences.
GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols
Lecteur·ice, je vous laisse installer wget
à votre convenance, puis choisir depuis quel dossier vous désirez travailler pour télécharger les miroirs des sites web qui vous plaisent.
Avec wget
nous allons générer un dossier qui sera nommé d’après le nom du site web copié. Vous pourrez ouvrir ce dossier (clic droit) dans votre navigateur web et le consulter et y naviguer quand vous voulez, y compris sans être connecté⋅e à internet.
Selon la documentation de wget
, avec ce qui est appelé l’ « utilisation très avancée », si vous souhaitez utiliser wget
dans une interface utilisateur de terminal (TUI) pour faire un miroir d’une page web ou d’un site web entier sur votre ordinateur :
$ wget -m -k -K -E https://www.gnu.org/
Avec:
-m
: pour créer localement un miroir sur votre machine-k
(Convertir les liens) : Convertit les hyperliens absolus en hyperliens relatifs pour une visualisation hors ligne.-K
(–backup-converted) : sauvegarde le fichier X en tant que X.orig avant la conversion. *L’extension de fichier ORI signifie Original File (fichier original) et est utilisée pour désigner un fichier qui n’a pas été modifié ou altéré de quelque manière que ce soit.-E
(Adjust Extension) : Modifie les extensions de fichiers des pages web en .html pour une visualisation hors ligne.
Nous pouvons donc utiliser la même chose avec :
$ wget -mkKE https://www.gnu.org/
Il se peut que nous voulions plus de fonctionnalités car nous voulons un miroir précis et utile, en utilisant :
-p
(Page Requisites) : Inclut les dépendances de la page telles que les images, les feuilles de style, etc. dans le téléchargement.-c
(Continue) : Reprend un site web qui a été partiellement téléchargé.
Cela ressemble maintenant à :
$ wget --mirror -p -c -k -K -E <url>
Ou bien
$ wget -mpckKE <url>
Plus avancé avec des gants pour les requêtes
Je l’ai dit, nous avons à nous soucier des traces que nous laissons lorsque nous faisons des requêtes qui envoient des données pour recevoir d’autres données.
Ensuite, afin de demander de manière moins brutale et d’éviter l’interdiction du serveur, nous pourrions ajouter des arguments.
$ wget -mpckKE --user-agent="" -e robots=off <url>
Avec :
--user-agent=""
: wget ne fournit pas de user agent-e robots=off
: Les sites web spécifient des règles d’exploration dans le fichierrobots.txt
pour guider les robots d’exploration. Par défaut,wget
respecte ces restrictions. Cependant, certains scénarios de test ou d’archivage requièrent querobots.txt
soit ignoré afin d’accéder à des chemins d’accès restreints. En utilisant--ignore-robots
ou en ajustant la configuration,wget
ignorera ces directives. Bien que pratique pour certaines tâches, cela doit être fait de manière éthique et en respectant les ressources du serveur.
Attention ! : je l’ai dis, demandez toujours avant de faire un miroir d’un site web qui n’est pas le votre. Et le fait de ne pas respecter les règles sur serveur robot.txt
peut sérieusement ennuyer læ personne qui fait l’administration système ou aussi aboutir à un résultat d’abandon de votre requête wget
.
Approche avec plus de précaution concernant nos informations transmises
Nous pouvons également continuer à réduire nos empreintes et à atténuer les problèmes de confidentialité en utilisant le réseau Tor. Ce qui va fournir une adresse IP au serveur sur lequel nous envoyons nos requêtes à la place de notre adresse IP réelle de connexion.
$ torsocks wget -mpckKE --user-agent="" -e robots=off <url>
On peut aussi ajouter un autre niveau de mitigation avec un temps d’attente entre chaque requête, afin de ne pas être trop brutal sur le serveur cible et d’éviter d’être rejeté ou banni
$ torsocks wget -mpckKE --user-agent="" -e robots=off --wait 1 <url>
Cependant, cette option peut augmenter le temps de mise en miroir de quelques secondes (pour un site statique) à 3 ou 4 minutes, et jusqu’à plusieurs heures pour un site léger et/ou un site plus complexe.
Exécuter avec plusieurs sites web
Créons une list.txt
contenant toutes les url des sites web que nous voulons mettre en miroir. Ensuite, il suffit de lancer :
$ torsocks wget -mpckKE --user-agent="" -e robots=off --wait 1 list.txt
Certaines personnes voudront peut-être faire un alias nommé miroir
pour avoir une commande type
$ miroir <url>
D’autres voudront peut-être Torifié un script (bash, zsh, autre), ce qui donnera :
$ torifiy ./miroir.sh
Nous pouvons aussi planifier et automatiser de telles requêtes par avance, par exemple avec cron, pour répéter nos actions avec régularité calendaire.
Remerciements
Merci à toutes les personnes qui soutiennent les efforts par leurs dons

Xavier Coadic
Human Collider