Tous les CMS sont susceptibles d'être attaqués par des personnes malveillantes : en plus de moyens de protection — mises à jour régulières des fichiers système et des extensions, utilitaires complémentaires — il est indispensable de sauvegarder le site de manière régulière, à un rythme fonction des mises à jour.

On lit trop souvent sur le forum Joomla! francophone des messages d'utilisateurs désespérés suite à un piratage de leur site ou une simple erreur de manipulation ou de gestion (un oubli de renouvellement d'hébergement, par exemple...), utilisateurs qui n'ont jamais sauvegardé leur site. Il faut aussi se méfier des sauvegardes des hébergeurs : si certains les font à la fois pour les fichiers et les bases de données, d'autres ne le font que pour les bases, d'autres encore seulement pour les fichiers. Des fichiers de site sans le contenu du site qui se situe dans la base, ou inversement, ça ne constitue pas un site !

Une erreur parfois bête, pas de sauvegarde, et tout est à recommencer...

Ce qui change le plus fréquemment est la base de données : on fait plus de modifications du contenu que d'ajout d'extensions, images ou documents. Pour la sauvegarder, il existe LazyDbBackup en deux versions, PDO et MySQLi. Actuellement la plupart des serveurs devraient supporter la version PDO, à privilégier donc, sauf si des erreurs survenaient lors de son paramétrage (qui déclenche la sauvegarde).

Cette extension peut expédier par mail le fichier de sauvegarde de la base de données, comprimé ou non, pour autant qu'il ne soit pas trop lourd pour la messagerie. Une fois expédié, ce fichier peut être supprimé du serveur ou conservé. Il peut aussi ne pas être expédié et simplement conservé : dans ce cas, pour éviter d'en conserver un nombre trop important, il est possible d'utiliser le module LDBChecker qui peut être paramétré pour ne conserver qu'un nombre donné de sauvegardes.

L'autre solution va permettre une sauvegarde complète du site : il s'agit d'Akeeba backup dont l'utilisation est développée dans d'autres articles. En version Pro, elle permet d'expédier les sauvegardes vers un serveur distant, afin de les isoler du site et empêcher (si le serveur distant est sécurisé) toute récupération par un visiteur indésirable. Il est prudent par ailleurs de tester régulièrement les sauvegardes en les décompressant sur un autre serveur, distant ou local, ou localement avec Akeeba Extract Wizard.

En cas d'incident grave, selon ce qui a été fait précédemment, une restauration de la sauvegarde de la base, en utilisant phpMyAdmin, peut suffire. Sinon, il faudra restaurer une sauvegarde Akeeba backup, de préférence après avoir supprimé tous les fichiers du site sur le serveur (voir l'article sur la restauration).