Maison >développement back-end >tutoriel php >Code source de sécurité PHP exposé
Un problème important concernant l'inclusion est l'exposition du code source . La raison principale de ce problème est la situation courante suivante :
l Utilisation de l'extension .inc pour les fichiers inclus
l Les fichiers inclus sont enregistrés dans le répertoire principal du site Web
l Apache n'a pas défini le type de fichier .inc
l Le type de fichier par défaut d'Apache est text/plain
La situation ci-dessus entraîne un accès direct au fichier inclus via l'URL. Pire encore, ils seront traités comme du texte normal et non analysés par PHP, donc votre code source sera affiché dans le navigateur de l'utilisateur (voir Figure 5-1).
Figure 5-1. Exposition du code source dans le serveur
Il est facile d'éviter cette situation. Vous pouvez uniquement réorganiser votre application et placer tous les fichiers inclus en dehors du répertoire principal du site Web. La meilleure façon est de placer uniquement les fichiers qui doivent être publiés publiquement dans le répertoire principal du site Web.
Même si cela peut paraître fou, il existe de nombreuses situations dans lesquelles le code source peut être exposé. J'ai vu des fichiers de configuration Apache écrits par erreur (et découverts au prochain démarrage), des administrateurs système inexpérimentés mettant à niveau Apache mais oubliant d'ajouter le support PHP, et une foule d'autres situations qui conduisent à l'exposition du code source.
En conservant autant de code PHP que possible en dehors du répertoire principal de votre site Web, vous évitez l'exposition du code source. À tout le moins, il est préférable de conserver tous les fichiers à inclure en dehors du répertoire principal du site.
Certaines méthodes peuvent limiter la possibilité d’exposition du code source mais ne peuvent pas résoudre fondamentalement le problème. Ces méthodes incluent la configuration d'Apache pour qu'il gère les fichiers .inc de la même manière que les fichiers PHP, en utilisant des fichiers d'inclusion avec un suffixe .php et en configurant Apache pour qu'il n'accepte pas les demandes directes de fichiers .inc :
<Files ~ "\.inc$"> Order allow,deny Deny from all </Files>
Bien que ces méthodes présentent leurs avantages, aucune n'est aussi sûre que de placer les fichiers d'inclusion en dehors du répertoire personnel du site. Ne comptez pas sur les méthodes ci-dessus pour protéger votre application, traitez-les tout au plus comme une défense en profondeur.
Ce qui précède est le contenu de l'exposition du code source de sécurité PHP. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www. php.cn) !