Inclusion directe

C’est un truc qui existe depuis des lustres dans le code de Dotclear, à savoir un petit bout de code pour vérifier que le fichier inclus est bien inclus proprement, c’est-à-dire au sein de l’application Dotclear. En général ça ressemble à ça :

if (!defined('DC_RC_PATH')) {
    return false;
}

ou ça quand on est du côté de l’administration :

if (!defined('DC_CONTEXT_ADMIN')) {
    return;
}

Maintenant on bascule de plus en plus sur une gestion par classe, voire même en incluant des espaces de nom et je me demande s’il est toujours utile, d’un point de vue sécurité, de prévoir ce petit bout de code avant la déclaration d’une classe dans un fichier PHP.

Imaginons que je sois un script kiddy et que j’arrive, d’une manière ou d’une autre parce que j’ai des supers pouvoirs de hacker, à placer quelque part sur le serveur visé un fichier dans lequel je vais inclure des bouts de Dotclear.

Qu’est-ce qui m’empêche, avant de faire un require, de déclarer la constante DC_RC_PATH, ce qui rend du coup caduc le soit-disant code de protection ?

Rien !

En parcourant mes archives je découvre que j’en avais déjà causé ici même il y a quelques mois sans que ça ne défrise les foules !

Pour conclure, autant je peux comprendre l’usage du code pour l’administration, quoi que même dans ce cas c’est discutable pour la raison du script kiddy ci-dessus, autant pour le reste c’est franchement du code superflu, à mon humble avis de pas spécialiste du tout, mais sachant un peu !

Z’en dites quoi vous ?

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15603

Haut de page