2009-03-24 3 views
0

la fopen php ne parvient pas à ouvrir un fichier pour la lecture, si l'autorisation de fichier est 440. Je ne veux pas donner 444 autorisation au fichier, de sorte qu'il ne peut pas être accessible directement via une URL.php fopen n'ouvre pas le fichier, la permission de lire n'est pas donnée au monde/public?

+0

Qui est le propriétaire et le groupe du fichier? –

+0

C'est un env hébergé, donc l'utilisateur qui crée le fichier, c'est-à-dire je suis le propriétaire et le groupe que je ne connais pas. –

Répondre

1

Vous pouvez faire comme tj111 suggère, le bloquer avec .htaccess.

Mais encore meilleure idée est de le mettre en dehors de la racine www.

Par exemple, si vos fichiers PHP sont en /home/utilisateur/public_html/, mettez vos fichiers avec un accès limité par exemple dans   /home/l'utilisateur/inclut en leur donnant 644 (rw-r--r--). Vous pouvez limiter les permissions du répertoire à 711 (rwx--x--x), donc personne d'autre que vous ne peut voir quels fichiers sont là. Cela ne vous empêche cependant pas de lire ou d'inclure ces fichiers en utilisant PHP.

2

En supposant que vous utilisiez Apache avec PHP, le moyen le plus simple de contourner ce problème est de limiter l'accès aux fichiers à l'aide d'Apache mais d'autoriser un accès en lecture global. La façon de le faire est de garder tous les fichiers que vous voulez hors-limites dans leur propre répertoire, et dans le fichier .htaccess mis ceci:

Order Allow , Deny 
Deny from all 

Maintenant vous pouvez disposer des autorisations globales de lecture, mais si vous essayez d'accéder le fichier directement à partir du Web, vous obtiendrez une erreur Permission Denied.

Questions connexes