Planète

Par LaboRouge
Adhérent

Supprimer le titre pour certain type de contenu

Il peut être utile dans certains cas de supprimer l'affichage du titre sur des types de contenu.

Mais pour quelles raisons aurais-je besoin de faire ça ?

Dans Drupal, l'affichage du titre du contenu se fait en dehors du "node". C'est-à-dire que le titre sera forcément à un niveau supérieur par rapport au contenu et donc complètement détaché de celui-ci. Si l'on décortique les fichiers de template d'un thème, nous devrions trouver ce bout de code dans un fichier nommé page.tpl.php.


Drupal 7


Theme

Par liber_t
Ines WALLON

Astuce pour optimiser Composer dans vos containers Docker

Lorsque vous lancé Composer celui ci va télécharger la liste des packages au format JSON pour les stocker dans un dossier de cache.

Quand vous lancé votre container celui ci est vide, donc vous perdez 30s à chaque fois que vous le lancer.

L'idée ici est d'aller chercher votre dossier de cache local pour le monter sous forme de volume

Par Christophe MOLLET
Christophe Mollet

Drupal 8

Drupal 8 vient d'être enfin dévoilé. Découvrez toutes les nouveautés de cette nouvelle version.

Par Christophe MOLLET
Christophe Mollet

Drupal

Vous souhaitez prendre connaissance des raisons pour lesquelles Drupal est recommandé par sa communauté ?

Par Christophe MOLLET
Christophe Mollet

Drupal Camp

La Drupal Camp est une occasion d'apprendre, partager ses idées et de rencontrer les différents acteurs de la communauté Drupal. Vous souhaitez connaître les dates ?

Par Kgaut
Kevin Gautreau

Drupal 8 - Créer la traduction d'une chaine de caractère dans le code

Dans un processus de déploiement, il est utile de gérer les traductions de chaînes de caractères dans le code, afin de pouvoir les déployer plus facilement.

Exemple avec cette fonction d'update à adapter en fonction de vos besoins :

  1. /**
  2.  * Création d'une traduction
  3.  */
  4. function mespronos_tweaks_update_8005() {
  5. $chaine = 'Forgotten password';
  6. $traduction = 'Mot de passe oublié';
  7. $storage = \Drupal::service('locale.storage');
  8. $string = $storage->findString(['source' => $chaine]);
  9. if ($string === NULL) {
  10. $string = new \Drupal\locale\SourceString();
  11. $string->setString($chaine);
  12. $string->setStorage($storage);
  13. $string->save();
  14. }
  15.  
  16. $translation = $storage->createTranslation(array(
  17. 'lid' => $string->lid,
  18. 'language' => 'fr',
  19. 'translation' => $traduction,
  20. ))->save();
  21. }

Pour un exemple réel, il sera plus pratique de passer par un tableau associatif (à deux dimensions si l'on veut importer plusieurs langues) qui sera parcouru par un ou deux foreach.

Par liber_t
Ines WALLON

Mise en place d'une architecture Docker + Drupal 8

Sa y est, j'ai enfin franchi le cap. j'ai migré tout mon site sur une architecture full Docker en dev, test et prod.

Je vais vous expliquer dans cet article, comment j'ai réussi à mettre tout ça en place

Par Christophe MOLLET
Christophe Mollet

Sécuriser un site Drupal

Sécuriser un site Drupal

Les clés pour la sécurité Drupal

julien joubert

mer 01/08/2018 - 15:48

Vous pensez que Drupal est sécurisé ? Il y a beaucoup de choses à savoir pour utiliser les bonnes pratiques dans le but de protéger votre site au maximum. Utilisation, permissions, modules, hébergeur, vous voulez en savoir plus ?

Les clés pour utiliser Drupal en toute sécurité

Drupal est actuellement un des CMS les plus utilisé pour le développement de sites internet. Avec cette popularité, la sécurité est primordiale. Bien que Drupal, reste largement très sécurisé, il existe des méthodes supplémentaire que l’utilisateur doit absolument entreprendre afin de s’assurer que son site reste résistant aux attaques autant que possible.

Permissions maintenus au minimum

Dans Drupal, les utilisateurs disposent de privilèges qui leur donne accès à chacune des sections. Ceci, bien-sûr, signifie que les privilèges qui se retrouvent entre de mauvaises mains pourraient s’avérer être dangereux pour votre site. Ces privilèges vous permettent de contrôler ce que les utilisateurs peuvent voir et faire. Trois rôles sont créés par défaut à l'installation de Drupal : les utilisateurs authentifiés, les utilisateurs anonymes et les administrateurs. Vous pouvez définir un ensemble spécifique de permissions pour ces trois rôles. Il est à noter que l’administrateur peut aussi créer de nouveaux rôles. Cette fonction critique est la raison pour laquelle il faut s’assurer que le nombre de comptes administrateurs sur votre site soit maintenu au minimum. Ces comptes critiques doivent bien entendu être administrés par des personnes de confiances.

Rôles et permissions sur Drupal

Installer des modules approuvés et pris en charge

Drupal est composé de divers modules très puissants qui facilitent son utilisation en le rendant plus flexible. Cependant, tous ces modules ont leurs particularités. Chaque jour, des milliers de robots parcourent la toile à la recherche de failles de sécurité. La communauté Drupal, très active sur la sécurité, teste et corrige les éventuelles failles détectées. Chacune d’elles fait l'objet d'une correction plus ou moins rapide.

Ainsi, pour protéger votre site de ces attaques, assurez-vous d’installer des modules approuvés par la communauté Drupal. Si vous avez besoin de la fonctionnalité d’un module qui n’est pas encore très populaire, assurez-vous d'effectuer une recherche appropriée avant de procéder à son installation.

Modules approuvés sur Drupal

Gardez le noyau et les modules Drupal à jour

Il se peut qu’une personne malveillante tente de récupérer les données de votre site. C’est pour cela que les modules installés doivent être patchés régulièrement car ils incluent souvent des correctifs de sécurité.

La mise à jour de votre site peut-être dû à une faille de sécurité majeure comme Drupalgeddon 2, qui a touché plus de 115 000 sites. Lors de sa découverte, pour corriger cette vulnérabilité, Drupal a fortement conseillé à toute sa communauté d’appliquer les correctifs de sécurité publié par ces développeurs.

La principale conclusion à retenir est qu’il est vital pour votre site web, de garder Drupal et ces modules à jour.

Site non mis à jour :

Mise à jour des modules Drupal

Un bon hébergeur, un point primordial pour la sécurité de votre site

Un autre élément important, bien souvent négligé, est le choix d’un bon hébergeur. Alors que la rapidité et la fiabilité sont sans aucun doute des facteurs importants lors du choix d’un hébergeur, vous devriez également voir quelle type de mesures de sécurité il fournit. Il faut qu’il dispose de mesures de sécurité résistante à toute épreuve ce qui sera déjà une base bien solide pour la sécurité de votre site.

Pour choisir son prestataire, il est opportun de prendre en compte plusieurs critères :

  • Le nombre de sauvegardes effectué par votre hébergeur. En effet, si votre hébergeur effectue des sauvegardes régulières de votre site, vous n’aurez rien à craindre en cas de piratage informatique ou d’une éventuelle panne.
  • Mettre en place un certificat SSL afin de sécuriser les communications clients-serveur via le protocol HTTPS. Ceci est primordiale lors de l’achat en ligne pour un site ecommerce par exemple.
  • Une protection anti-DDoS est nécessaire car une attaque DDoS entraîne une saturation du serveur et de ce fait le rend injoignable.
  • Le chiffrage des données via le hachage sha512. Le hachage est utilisé pour comparer les données comme celles des mots de passe, la vérification des données téléchargées ou bien la signature électronique.

Photo d'un serveur

Les modules pour la sécurité

Comme nous le disions précédemment, Drupal est composé de divers modules. Il en existe de nombreux qui offrent différentes méthodes pour sécuriser votre site. En voici certains :

  • Password Policy

    Ce module permet de contrôler la structure d’un mot de passe comme le nombre de caractères, l’utilisation de caractères spéciaux, etc. Ce module a été téléchargé plus de 260 000 fois.

  • Sécurity Review

    Ce module permet de sécuriser le site lors de l’affichage des erreurs. Il évite ainsi la divulgation des informations inutiles, et promet la sécurité des fichiers privés. Il a été téléchargé plus de 270 000 fois.

  • Kit de sécurité

    Ce module sauvegarde les politiques de contenu, la manipulation des rapports du navigateur et la gestion de la violation. Il apporte les meilleures options de sécurité. Le module Kit de sécurité permet de réduire les risques d'exploitation des différentes vulnérabilités des applications web.

  • Username Enumeration Prevention

    Si des personnes malveillantes tentent de découvrir le nom d’utilisateur d’un site Drupal, ils peuvent utiliser la technique de “l’énumération des utilisateurs”. Ils vont pour cela tout simplement entrer un nom d’utilisateur qui n’existe pas. Drupal leurs donnera alors une réponse automatique qui leur indiquera que l’utilisateur est inconnu. Ils n’auront plus qu’à essayer d’autres noms d'utilisateur jusqu’à en trouver un valide.

    Le module Username Enumeration Prevention va tout simplement empêcher cela. Quand le module sera activé, le message d'erreur sera remplacé par le même message qu'un utilisateur valide. Ils seront alors redirigés vers le formulaire de connexion. Si l'utilisateur n'existe pas, aucun e-mail de réinitialisation du mot de passe ne sera envoyé.

  • Generate Password

    Son objectif est de rendre optionnel la création d’un mot de passe lors de l’enregistrement d’un nouvel utilisateur. Si le champ mot de passe n’est pas défini pendant l’enregistrement, le module va générer un mot de passe fort.

D’autres mesures s’impose !

En dehors des conseils ci-dessus, il existe d’autres bonnes pratiques qui doivent être régulièrement effectuées pour s’assurer que votre site reste le plus sûr possible.

En voici quelques-unes :

  • Vérifiez régulièrement les rapports d’état de Drupal pour avoir un aperçu de la sécurité de votre site.
  • Assurez-vous d’utiliser des mots de passe forts et changez-les régulièrement
  • Utilisez l’authentification à double facteurs
  • Supprimez les utilisateurs inactifs
  • Retirez les modules qui ne vous servent à rien
  • Il est recommandé d'éviter de modifier le fichier .htaccess. En effet, la mise à jour du core de Drupal remplacera le fichier .htaccess par la version par défaut.
  • Faites des sauvegardes régulières de votre site

Pour conclure

Gardez toujours ces conseils à l’esprit et gardez une longueur d’avance sur les potentiels attaques que peut subir votre site internet.

Vous souhaitez en savoir plus ? N'hésitez pas à en parler avec nos équipes nous nous ferons un plaisir de vous accompagner dans la sécurisation de votre site.


Ajouter un commentaire

Par Kgaut
Kevin Gautreau

Drupal 8 - Ajouter une restriction par ip sur une route

Dans le fichier MODULE.routing.yml on va utiliser le requirement « _custom_access »

  1. module.ma_methode:
  2.   path: 'mon-module/mon-chemin'
  3.   defaults:
  4.   _controller: '\Drupal\module\Controller\monController::maMethode'
  5.   requirements:
  6.   _custom_access: '\Drupal\module\Controller\monController::maMethodeAccess'

Que l'on va implémenter dans notre contrôleur, ici monController.php :

à noter : les ip autorisées sont stockées en configuration via un formulaire de config, les ip sont séparées par une virgule, d'où le explode.

  1. public function maMethodeAccess() {
  2. /** @var Request $request */
  3. $request = \Drupal::request();
  4. $ipAutorisees = explode(',', \Drupal::config('module.methode')->get('allowed_ips'));
  5. return AccessResult::allowedIf(\in_array($request->server->get('REMOTE_ADDR'), $ipAutorisees));
  6. }

 

Par LaboRouge
Adhérent

Audit de sécurité : 3 - Énumération des paiements

L'audit de sécurité a révélé une faille importante : l'énumération des paiements.

L'application de base

L'utilisateur procède à une commande sur notre site. Nous lui proposons un règlement par CB et le redirigeons vers la plateforme de paiement en ligne. Une fois le paiement effectué, un contenu (node) est créé afin de récupérer les données relatives à la commande et l'utilisateur est redirigé vers une page de notre site lui indiquant le bon déroulement de l'opération. Cette page comporte deux informations sensibles : l'email de l'utilisateur et le numéro de commande.


Sécurité


Drupal 7

Par LaboRouge
Adhérent

Audit de sécurité : 2 - XSS Stored

L'audit de sécurité a révélé une faille de type XSS Stored. C'est une faille majeure.

L'application de base

Nous avons développé un formulaire maison via le Form API de Drupal 7.

Ce formulaire comporte une étape de validation (hook_form_validate()) et une étape d'envoi (hook_form_submit()).


Sécurité


Drupal 7

Par LaboRouge
Adhérent

Audit de sécurité : 1 - Présentation

Lors de la livraison en production d'un de nos sites, notre client nous a fait savoir son intention de réaliser un "audit de sécurité" sur notre travail ainsi que notre hébergement.

Je me suis réjoui de cette initiative. Cela veut dire que notre client a conscience des risques liés au développement d'un site web. Et j'y ai vu une belle opportunité de remettre en question mon travail, notre travail.


Sécurité


Drupal 7

Par flocondetoile
Adhérent

Faire une requête SQL sur plusieurs tables avec Drupal 8

Drupal 8 fournit une API, avec EntityQuery, qui simplifie de manière significative l'écriture de requêtes SQL pour récupérer et lister un ensemble de contenus. Ainsi il est très facile de récupérer une liste de contenus selon des critères et des conditions complexes, sans avoir besoin de connaître précisément les tables et leur syntaxe pour chaque champ associé à une entité. Mais nous pouvons avoir besoin de recourir à des requêtes plus complexes nécessitant d'associer des données issues de plusieurs tables.

Par ftorregrosa
Adhérent
Florent Torregrosa

Résumé des Drupal Dev Days 2018

Du 2 au 6 juillet ont eu lieu les Drupal Dev Days de 2018. Cette année, ils avaient lieu à Lisbonne où 404 participants ont pu se retrouver pour assister à des keynotes, sessions, bofs et sprinter.

Voici un résumé des sessions auxquelles j'ai assisté et des sujets sur lesquels j'ai sprinté.

Sprints

Entity share

J'ai pu consacrer du temps à faire avancer Entity share :

  • test de bugs signalés

  • merge de patchs

Tags: 
Par ftorregrosa
Adhérent
Florent Torregrosa

Mise à jour du plugin Composer drupal-l10n

Dans un article précédent Télécharger des traductions Drupal avec Composer, j'avais présenté une extension Composer pour télécharger des traductions Drupal.

Désormais cette extension est dans le groupe Github drupal-composer https://github.com/drupal-composer/drupal-l10n.

Tags: 
Par ftorregrosa
Adhérent
Florent Torregrosa

Réorganisation de mes images Docker et mise en place builds automatisés

Hier, j'ai réorganisé mes images Docker. Cet article va résumer les changements et expliquer pourquoi de telles modifications.

C'est un commentaire d'Ines Wallon à propos du fait que le hub Docker peut être paramètré pour construire les images Docker automatiquement qui a déclenché cette réorganisation.

Tags: 
Par LaboRouge
Adhérent

Les Rencontres Interactives #18 : La dette technique

J'aurais le plaisir de vous présenter ma conférence intitulé "La dette technique : état des lieux" dans le cadre des Rencontres Interactives de Caen le 6 juin prochain.

Aprés avoir traité le sujet de la dette technique sous Drupal 7 au Drupal Camp de Lannion, je voulais approfondir ce sujet sur un aspect moins "technique" et plus "gestion de projet".

Cette conférence est donc le fruit de cette réflexion.

Pages