
Hacked! - Revue d'un module pour Drupal
Lors d'un audit de site web, il est possible de détecter si des modifications ont été apportées au noyau Drupal, aux modules et aux thèmes contrib. Comment faire cela ? La manière la plus efficace de le faire est d'utiliser le module Hacked!
Dates
Le module a été publié le 8 octobre 2009, et la dernière modification a été introduite le 13 février 2020. Hacked! a une version pour Drupal 7 et 8.
Popularité du module
Drupal.org rapporte que le module est utilisé par environ 16 000 pages dont 15 100 sont des pages Drupal 7 et 900 des pages Drupal 8. Cependant, dans le cas du module Hacked!, il s'agit d'une information peu fiable, car c'est un module qui devrait être utilisé uniquement dans des environnements de développement pour une durée courte et devrait être désinstallé après la fin du travail. On peut donc plutôt dire que 16 000 pages ont installé le module incorrectement.
Créateurs du module
L'utilisateur ivnish maintient le module Drupal 7. Personne ne le maintient pour Drupal 8 pour le moment.
À quoi sert le module ?
Le module Hacked! est un outil indispensable dans le travail de chaque agence Drupal. Chez Droptica, chaque nouvelle page acceptée pour le support Drupal est scannée avec le module Hacked! pour détecter les modifications dans les modules.
Nous effectuons des vérifications afin de trouver toutes modifications manuelles dans les modules et le noyau Drupal. Il y a plusieurs objectifs pour trouver ces changements :
- Si possible, le noyau Drupal et les modules contrib ne doivent pas être modifiés. Drupal est un système très flexible et, dans la plupart des cas, vous pouvez obtenir les résultats souhaités en suivant les bonnes pratiques. Si nous trouvons des modifications introduites par des équipes précédentes dans le code, nous essayons de les transférer dans nos modules et de les mettre en œuvre conformément aux standards de Drupal.
- Si les modifications ne peuvent pas être introduites dans notre propre code, nous les déplaçons vers les patchs suivis pour pouvoir les suivre automatiquement et les appliquer à chaque mise à jour de module.
Nous suivons les étapes ci-dessus pour pouvoir mettre à jour les modules facilement et rapidement vers les dernières versions sans risquer de supprimer ou de casser toute fonctionnalité cachée dans un module contrib. À ce point, je vous encourage à lire l'article sur comment garder votre site web sécurisé et à jour avec le support Drupal.
Sans le module Hacked!, nous n'avons pas une vue facile des modifications introduites dans un module contrib donné, et en cas de mise à jour, retrouver les modifications sans utiliser ce module sera long.
Déballage
Pour installer le module Hacked!, rendez-vous sur la page du projet sur drupal.org ou utilisez le Composer dont nous avons écrit un article séparé :
composer require drupal/hacked
Après l'installation, vous pouvez configurer le module en allant à
/admin/reports/hacked/settings
Le module a une option de configuration :
Ignorer les fins de ligne/inclure les fins de ligne : En fonction du système d'exploitation sur lequel le module a été modifié, les fins de ligne sont déterminées différemment. Régler cette option sur "Ignorer les fins de ligne" garantira que toutes les différences de codage de fin de ligne seront ignorées.
En d'autres termes : si le développeur ouvre le fichier sous Windows et l'enregistre alors que "Inclure les fins de ligne" est sélectionné dans ces paramètres, les différences dans les fins de ligne seront listées pendant la vérification du fichier.
Génération d'un rapport de modification
Après avoir installé le module, allez à
/admin/reports/hacked/check
ou utilisez la commande drush :
drush hacked-list-projects
alias :
drush hlp
Le processus de génération de rapport prend jusqu'à plusieurs minutes, en fonction du nombre de fichiers à vérifier.
Revue des modifications
Le module Hacked! fournit une page avec le rapport. Nous pouvons le trouver sous :
/admin/reports/hacked
ou en allant à l'onglet "rapports" dans le menu admin, puis en utilisant le lien "hacked"
Dans l'exemple donné, vous pouvez voir que le module "Better exposed filters" contient quelques modifications. Vérifions-les :
Si vous avez le module Diff supplémentaire, vous pouvez facilement voir les modifications exactes dans chaque fichier :
Les modifications peuvent également être observées à l'aide des commandes drush. Pour lister les modules contenant des modifications, utilisez la commande :
drush hlp
Pour lister les noms des fichiers contenant des modifications, tapez :
drush hacked-details [le nom machine du module]
ou utilisez l'alias :
drush hd [le nom machine du module]
Pour lister les modifications dans des fichiers individuels dans un module donné, utilisez la commande :
drush hacked-diffd [le nom machine du module]
qui renverra les modifications entre les fichiers de la même manière que la commande git diff
Modifications au fichier d'échantillon :
Modules alternatifs
Il existe plusieurs modules de vérification de l'intégrité des fichiers, notamment MD5 Check, File Integrity Check, mais ils ne sont pas largement utilisés. MD5 Check génère une somme de contrôle pour les fichiers et informe l'administrateur des modifications sur cette base. File Integrity Check, quant à lui, crée une "empreinte" de l'ensemble de la page et informe l'administrateur s'il y a des modifications.
Modules d'extension
Nous recommandons d'installer le module Diff, qui permet de suivre clairement les modifications entre la version actuelle du fichier et celle téléchargée par le module Hacked!
Résumé
Le module Hacked! résout le problème de recherche de modifications dans les fichiers du noyau Drupal et des modules contrib. Il offre une fonctionnalité qui, en combinaison avec le module Diff, permet de voir clairement les différences entre les fichiers originaux et modifiés.