WordPress : Cela vaut-il la peine de restreindre l’accès direct aux fichiers de thème ?

Publié par Jean-Michel le

J’ai rencontré de temps en temps l’extrait suivant dans les thèmes :

if ( ! defined('ABSPATH')) exit('restricted access');

C’est au début de certains (tous ?) fichiers PHP dans un thème et c’est censé empêcher l’accès direct au fichier par des sources malveillantes.

Je vois que cela n’est pas inclus dans Twenty Ten ou Eleven et je ne l’ai jamais vu recommandé dans la documentation officielle de WordPress. Cela me semble être une bonne idée, mais je n’en sais pas assez sur la sécurité pour en juger et je ne trouve pas grand-chose avec Google.

Est-ce quelque chose que je devrais avoir dans mes thèmes personnalisés ? Si oui, devrait-il être dans tous les fichiers PHP ou seulement certains ?

Solution n°1 trouvée

Habituellement, vous n’en avez pas besoin. Mais… il y a au moins un cas limite :

  • Si un fichier de thème est une partie de modèle ,
  • et il utilise des variables globales du contexte appelant (fichier parent),
  • et register_globals est on,
  • et il utilise simplement ces variables sans aucun contrôle de sécurité…

… un attaquant peut appeler ce fichier, définir les variables manquantes avec GETou POSTet faire en sorte que le fichier de thème les imprime. Et puis il y a un problème de sécurité.

Alors… la meilleure option n’est pas une vérification du contexte comme celle de votre exemple, mais un bon code : évitez les variables globales, vérifiez leur contenu avant de l’imprimer.

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *