Où mettre mes fichiers PHP
J'ai fini mon projet PHP de développement. Il a été développé en local sur mon PC. Maintenant, je suis prêt à les télécharger sur mon serveur web et de le rendre accessible au public.
Il y a cependant une chose qui me dérange: à l'heure actuelle, tous les fichiers PHP sont dans mon dossier WWW avec tout le HTML, JavaScript, CSS, Images et fichiers. Les fichiers PHP sont sensibles, comme ils l'accès de Base de données MySQL et contient souvent de mot de passe et les chemins d'accès de fichier qui sont censées rester secrètes de la part des utilisateurs.
Si je laisse les fichiers PHP dans le répertoire "WWW", ai-je peur, ils peuvent devenir accessibles au public de la même manière, comme les autres fichiers et images. J'ai peur que les utilisateurs peuvent télécharger et les lire, et donc de révéler sont le secret de l'information sur mon serveur web.
Sont mes soucis légitime? Le serveur web se masque automatiquement .les fichiers php? Dois-je déplacer les fichiers PHP dans un autre endroit, loin de dossier WWW? Est-il un autre moyen de protéger mes fichiers PHP d'être téléchargé?
Je suis en utilisant:
- Apache 2.4.7
- PHP 5.5.8
- MySQL 5.6.15
Oui. Les gens qui disent de ne pas s'inquiéter sont négligents. Si tout est configuré droits et que votre serveur est configuré pour exécuter les fichiers PHP, alors il n'y a pas de problème. Mais PHP les fichiers source sont juste des fichiers texte, et si votre serveur est configuré de manière incorrecte, il peut les traiter comme tels.
Je ne conseille pas de mettre des données sensibles n'importe où, si le serveur n'est pas correctement configuré. quelle est la garantie que le serveur web de l'honneur de votre
.htaccess
(en supposant que le serveur web apache pense AllowOverride None
)Un serveur web est configuré par défaut pour que nourrir les fichiers. Vous avez besoin d' de configuration pour gérer les fichiers PHP PHP les fichiers, et pour masquer les listes de répertoires. Il est facile de faire une erreur ou d'oublier quelque chose qui causent ces paramètres supplémentaires à ne plus travailler. C'est beaucoup plus réaliste qu'une erreur qui permet d'accéder à des fichiers en dehors de doc racine. Bon point cependant sur le téléchargement des fichiers sensibles à un pas entièrement configuré de serveur @bansi.
Ah ouais, le truc, c'est: il donnera la liste de vos fichiers/structure du fichier, mais le code source des fichiers ne sera pas accessible. Maintenant, je comprends que vous pourriez avoir des raisons de vouloir cacher la structure de votre fichier, mais c'est une autre affaire. Ce que votre question devrait être n'est pas nécessairement "où dois-je placer mes fichiers PHP", mais plutôt: "comment puis-je désactiver la liste de l'annuaire". stackoverflow.com/questions/2530372/... edit: Vous pouvez aussi choisir de ne pas uniquement la liste des fichiers .des extensions php.
OriginalL'auteur Bunkai.Satori | 2015-01-02
Vous devez vous connecter pour publier un commentaire.
C'est assez sûr. Si vous avez PHP installé, votre serveur va toujours essayer d'exécuter le fichier PHP plutôt que de montrer son code, et même si le code ne fonctionne pas, vous obtiendrez un message d'erreur ou une page blanche plutôt que le code.
En dehors de cela, vous pouvez utiliser
.htaccess
ou d'autres types de configuration de serveur pour désactiver l'affichage de ces fichiers.Mais.. Il faut dire, cependant, que si l'un de ces paramètres ne sont pas configurés correctement, le serveur web peut en effet servir de PHP les fichiers, comme les fichiers de texte brut!
Donc je pense que c'est une bonne idée de déplacer tous les fichiers php de le dossier www, si elles ne doivent pas être accessibles directement. Assez souvent, vous trouverez un seul index.php qui gère toutes les demandes et comprend d'autres fichiers php. PHP les fichiers qui ne sont pas dans www (la racine du document), peuvent toujours être inclus, il est donc une bonne mesure de sécurité à mettre ces fichiers dans un dossier séparé. De cette façon, vous réduisez le risque d'exposer ces fichiers lorsque vous faites une petite erreur de configuration.
Après tout, même quand il travaillait avant, il est très facile de le casser. Peut-être que vous souhaitez modifier votre configuration, un peu, ou vous êtes sur un ordinateur hôte partagé où le fournisseur d'hébergement peut apporter des modifications sans vous connaître, c'est donc juste une chose sage à faire.
Donc.. C'est une bonne idée de déplacer les fichiers du dossier www. Il est généralement très facile à faire (même si cela dépend de votre structure de la demande), il est donc juste une mesure de sécurité supplémentaire qui, généralement, ne vous coûtera pas un centime.
Et si c'est difficile (en raison de l'application actuelle de la structure) complètement déplacez tous les fichiers de la racine du document, assurez-vous qu'au moins les fichiers de configuration avec les mots de passe sont à l'extérieur du dossier www, suivie par l'accès à la base de fichiers qui pourraient les exposer toutes les questions de sécurité que vous pourriez avoir dans votre mise en œuvre.
Oui. Il y a deux configurations différentes. L'un est de déclarer le fichier PHP de type:
AddType application/x-httpd-php .php
. Cela indique à Apache que.php
fichiers doit être exécuté par le module PHP. C'est configuré, vous ne serez pas en mesure d'afficher les fichiers comme du texte (voir aussi Apache est le téléchargement de fichiers php au lieu de les afficher).L'autre paramètre est à désactiver directory index. Vous pouvez faire cela en utilisant
<Directory path>Options -Indexes</Directory>
. Mais en dépit de ces paramètres je serais encore de déplacer les fichiers de votre répertoire " www " autant que possible.(+1) pour nice description, même si je suis en désaccord sur certains points. @Bunkai.Satori si vous pouvez voir vos fichiers php en tant que fichiers texte, je voudrais suggérer configurer votre serveur web avant de télécharger quoi que ce soit à ce serveur.
salut et merci pour vos conseils. Bien sûr, je suis prêt à tout ce qui est nécessaire. J'ai juste besoin de savoir ce à configurer, ou au moins par où commencer. J'ai au moins un des points de départ maintenant.
OriginalL'auteur GolezTrol
Ne vous inquiétez pas; fichiers
PHP
sont interprétés par le serveur web et le code n'est pas accessible directement à partir d'un navigateur web. Dans le fichierhttpd.conf
d'apache, vous pouvez vérifier que l'extensionphp
est "protégé".Si vous êtes intéressé à donner un peu plus de sécurité pour votre application, vous pouvez modifier la extension de vos fichiers PHP, et que votre serveur config (la ligne ci-dessus). Il est appelé
Security through obscurity
.C'est différent de la liste, les fichiers PHP (quelque chose qui doit être évité) qu'ils peuvent être lus. Si vous souhaitez empêcher une liste de répertoires, procédez de la manière suivante:
Options -Indexes
dans le web, la configuration du serveur. Ou, si vous voulez éviter la liste uniquement les fichiers PHP (non recommandé), procédez de la manière suivante:IndexIgnore *.php
OriginalL'auteur tomloprod