Conception de thèmes sécurisée

Date du document original en anglais : 22 Avril 2010 – 21h41 - http://drupal.org/node/336813



Vous rencontrerez à coup sûr des problèmes lors du développement d'un thème. Voici quelques tuyaux et assurances pour résoudre les problèmes de votre thème.

Toujours développer sur un site de test

Il vous faut un site de test pour éviter que les utilisateurs voient un site bourré de bugs. La meilleure solution est de configurer un serveur local et d'installer Drupal dessus. Vous pourrez y effectuer toutes les modifications, vous tromper, sans répercussions sur votre site en ligne.

Ecrire du code sûr

Les fonctions PHP de votre thème doivent utiliser l'API Drupal et respecter les bonnes pratiques pour écrire du code sécurisé (traduction en français ici)

Ne déployer votre thème qu'opportunément

Lorsque votre thème est prêt à être montré mais pas encore prêt à être mis en ligne pour tous, vous pouvez utiliser une des méthodes ci-dessous pour ne le motnrer qu'à certains internautes.

Par rôle

Paramétrez les permissions d'un rôle pour permettre à certains internautes de choisir leur propre thème via les paramètres de leur compte utilisateur. C'est sans doute la méthode la plus simple et qui ne nécessite pas de modules additionnels.

Utilisez des modules

Utilisez le module Switchtheme et n'autorisez le choix des thèmes qu'à certains rôles.

Le module Section vous permet de n'activer un thème que pour une ou plusieurs parties de votre site, c'est utile lors d'un déploiement par étapes si vous avez un site conséquent.

Utilisez une installation multi-site

Vous pouvez utiliser les capacités multi-sites de Drupal pour paramétrer un site de test en parallèle de votre site existant.

Comptes-rendus d'erreurs PHP

Lorsque PHP rencontre une erreur il peut générer un log de l'erreur et afficher un rapport à l'écran. Bien que ces messages d'erreurs soient utiles pour débogguer votre site, il est risqué de les afficher tous puisqu'ils peuvent dévoiler des informations sur votre serveur et compromettre sa sécurité .

PHP vous permet de désactiver les rapports d'erreurs dans le fichier php.ini. Certaines solutions WAMP, comme Wampserver, vous permettent d'activer ou de désactiver les rapports d'erreurs sans avoir à éditer le fichier php.ini.

Thème d'administration

Beaucoup de thèmes ne sont pas adaptés pour l'administration d'un site, notamment les thèmes de largeur fixe. Drupal vous permet d'assigner un thème uniquement pour les pages d'administration. Si vous avez besoin de plus de souplesse pour définir les pages qui devront utiliser le thème d'administration, essayez le module Administration theme.

Tous les thèmes du core sont adaptés pour ces pages-là, il vaut donc mieux choisir Garland ou Blue Marine (ou Stark dans le cas de Drupal 7) comme thème d'administration. Allez dans Administrer » Configuration du site » Thème d'administration et choisissez Garland comme thème.

Même si votre thème défaille durant sa mise au point, vous pourrez toujours accèder à la plupart de vos pages d'administration.

La seule page qui ne serait pas accessible sera la page de configuration de blocs de votre thème. Comme les blocs peuvent être paramétrés pour chaque thème, Drupal utilise un thème spécifique. Si votre thème n'affiche pas cette page... Eh bien vous devrez travailler cet aspect pour y remédier.

Des thèmes comme Zen, Genesis, et bien d'autres, ont des sélecteurs de classes body qui permettent de cibler cette page avec des styles spécifiques, ce qui est une façon de la personnaliser.

Themes such as Zen, Genesis and many others have body class CSS selectors that allow to target this page with unique styles which is one way of selectively theming this page.

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <css>, <php>, <html>, <ccss>, <ccss>, <drupal5>, <drupal6>, <html>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • You may use [view:viewname] tags to display listings of nodes.

Plus d'informations sur les options de formatage

CAPTCHA
Cette question permet d'éviter le spam :
16 + 1 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.