J'ai rencontré de temps en temps l'extrait de code 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 il 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 ne connais pas assez 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 tel est le cas, devrait-il figurer dans tous les fichiers PHP ou seulement dans certains?
theme-development
security
mrwweb
la source
la source
defined('ABSPATH') OR exit;
defined('WPINC') ? : die();
PRéponses:
Habituellement, vous n'en avez pas besoin. Mais… il y a au moins un cas de bord:
on
,… Un attaquant peut appeler ce fichier, définir les variables manquantes avec
GET
ouPOST
et faire imprimer le fichier de thème. Et puis il y a un problème de sécurité.Donc… la meilleure option n'est pas une vérification de contexte comme celle de votre exemple, mais un bon code: évitez les variables globales, vérifiez leur contenu avant de l'imprimer.
Dans certains cas, j'ajoute la vérification de contexte lorsque je pense que quelqu'un d'autre utilisera mon code et le modifiera sans sécurité. Ça ne fait pas mal.
la source