10
votes

Où devrais-je placer des fichiers sensibles pour qu'ils soient lisibles par des scripts PHP?

Je suis sur un hôte Parallels / Plesk VPS, et c'est une question vraiment novice

Le Webroot est à:. P>

<Directory /var/www/vhosts/my-domain-name/httpdocs>
php_admin_value open_basedir /var/www/vhosts/my-domain-name/httpdocs:/tmp:/var/www/vhosts/my-domain-name/myfolder
</Directory>


1 commentaires

Effectuez une lecture lisible pour Apache Group sur Redhat comme System. Si vous avez affaire à Ubuntu Mettez des autorisations de lecture pour le groupe: www-data


3 Réponses :


2
votes

Placez-les au-dessus du dossier racine. Les scripts PHP pourront toujours y accéder, mais si le site Web est compromis, les répertoires au-dessus de la racine doivent rester en sécurité.

Alors, mettez-les aussi quelque part comme / var / www / vhosts / sensibles-docs / et définissez des autorisations sur le répertoire afin que PHP puisse lire les fichiers.


0 commentaires

10
votes

C'est une bonne pratique des données sensibles à l'extérieur de la racine de document Apache.

Vous devez autoriser PHP à accéder à ces dossiers en ajoutant ou modifiant la configuration d'hôte virtuelle.

cherche php_value open_basedir

et ajoutez vos dossiers séparés par un côlon (:)

Plus d'infos à Open_Basedir

Remarque: Il existe quelques problèmes de sécurité avec Open_Basedir, expliqué dans

http://www.hardened-php.net/advisory_012004.42.html

Edit:

J'utilise ceci Structure des arbres pour chaque domaine: xxx

etc: pour les fichiers de configuration de l'application.

journal: pour les fichiers journaux Apache ou nginx

PHPCache: pour les fichiers Zend_Cache

phpfiler: Pour les fichiers de l'application, un script PHP le sert si l'utilisateur a des privilèges.

phpinclude: php_value include_path

phplogs: car Journaux d'application

PHPSessions: Pour stocker ces sessions de données d'hôte virtuel.

PHPTMP: Pour les fichiers temporels, tels que téléchargés.

PHPTRASH: une corbeille pour phpfiler. < / P>

Privat: Pour mes servies privées

www443: pour la racine de document HTTPS

www80: pour le document http racine

dans Open_Baseedir Clausule Je mets tous les dossiers sauf le journal et le privat.


3 commentaires

Bonjour Corrétge, merci, mais je n'ai pas tout à fait attrapé lequel des dossiers ci-dessus vous recommanderiez de placer mes fichiers sensibles qui doivent être lus par mes scripts PHP.


Ma question devait être résolue avec des informations spécifiques à Plesk. J'ai été aidé à Reddit, et j'ai également trouvé cette page: Gadberry.com/aaron / 2006/02/09 / plesk_vhost


Ops @gus je suis désolé! Le meilleur endroit pour les fichiers d'application est phpfiler.



3
votes

Cela signifie que le soi-disant safe mode code> en effet, ce qui ne permet pas d'ouverture de fichier et répertoires en dehors d'un répertoire donné (par exemple votre Webroot spécifique). Ceci est très fréquent sur les communes et si Hébergeurs vous n'avez pas accès au php.ini, vous êtes hors de la chance et ne peut pas accéder à vos fichiers dans l'accès ../private.

To fichiers protégés, ajoutez un répertoire ci-dessous votre habituelle httpdocs code> -directory (par exemple privé) et ajouter un .htaccess code> -file à l'intérieur avec le contenu p>

order allow
deny deny from all


2 commentaires

Non. Open_Basedir Le paramètre n'est pas affecté par le Safe_Mode. Safe peut être désactivé (ce qui est mieux en fait) Les restrictions Open_Basedir s'appliqueront toujours.


À propos de votre dernière note, oui, je comprends que mon script était dans un dossier enfant du webroot, d'où le double "up". Mais merci.