Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1221 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  fopen permission

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fopen permission

n°1679358
guiguivts
Posté le 31-01-2008 à 01:04:26  profilanswer
 

Salut,  
 
J'ai un ptit problème de fopen. J'ai pas les droits pour écrire dans un fichier. J'ai tout tenté les différents mode, appelle de méthode system pour changer les droits etc etc etc y'a rien qui fonctionne. J'ai pas le droit de faire appel à la fonction php chmod. J'ai le droit pour la fonction system mais ça n'execute pas bien. .
 
C'est pour une grosse appli donc je doute que j'ai le droit de modifier le safe mode.  
 
Bref n'y a t il pas une petite astuce pour outrepasser cette sécurité..  
 
J'ai besoin d'écrire dans un fichier car je récupére les valeurs d'un formulaire et j'aimerai les écrire dans un fichier du style config.php pour que ce fichier soit accessible par d'autres fichiers...  
 
Désolé si je me suis mal fait comprendre il se fait tard...  
 
Bye


---------------
http://plainedemazerolles.free.fr
mood
Publicité
Posté le 31-01-2008 à 01:04:26  profilanswer
 

n°1679364
nargy
Posté le 31-01-2008 à 02:39:44  profilanswer
 

Le problème est que si tu réussi à écrire un fichier php, alors c'est que:
- PHP a les droits sur ce fichier,
- apache les a aussi
- n'importe qui connaissant le nom du fichier aussi
- et n'importe qui peut exécuter du code php arbitraire sur le serveur
 
Les solutions sont:
- utiliser une BDD pour y stoker des DONNÉES, et pas de code exécutable, parceque ce que tu t'apprêtes à faire rendra la maintenance plus difficile (d'où provient un bogue: du code principal ou d'un code stoké dans une BDD?). La programmation objet t'aidera à départager données et code.
- utiliser un nom de fichier aléatoire unique afin qu'on ne puisse le découvrir facilement, et de limiter les droits d'écriture au répertoire le contenant voire à ce fichier seulement. Ne jamais alors passer l'url de ce fichier à l'internaute, mais uniquement son numéro aléatoire via un script intermédiaire qui inclu le fichier php.
 
Le plus sécurisé pour ton fichier de config, s'il contient des valeurs utilisateurs que tu veux utiliser directement dans PHP après validation, est d'utiliser la fonction serialize sur une array contenant toutes les valeurs de config (ça peut être une array d'array même) et de stocker tel quel dans le champs 'config_php' de la table 'utilisateur' d'une BDD. Avec cette méthode tu peux facilement rajouter et modifier des paramètres de config.
 
Le plus simple reste encore d'utiliser les sessions s'il s'agit de paramètres de configuration qui doivent être utilisés sur tout le site (comme les préférences d'affichage): le fonctionnement est presque identique à celui ci-dessus, les variables étant alors sérialisées et stockées automatiquement dans des fichiers gérés par le serveur (pas besoin de BDD).


Message édité par nargy le 31-01-2008 à 02:42:34
n°1679378
guiguivts
Posté le 31-01-2008 à 07:56:23  profilanswer
 

Merci de ta réponse :)  
 
Le problème c'est que justement les valeurs que je souhaite stocker sont les paramètres d'accès à la bd ! (je reconnais que si j'enleve la sécurité sur ce fichier c'est pas terrible mais alors comment faire)  
 
En fait à l'origine les paramètres étaient rentrés en dur dans le fichier config.php. Le problème c'est qu'on ne peut pas demander à un utilisateur "lambda" de rentrer ces paramètres dans un fichier de config c'est pas terrible. Voilà pourquoi j'ai fait un formulaire, je voulais que le traitement de ce formulaire enregistrer ces paramètres dans un fichier config.php. Ainsi, chaque fichier php souhaitant se connecter à la bd fait un require du fichier connexionbd.php qui lui même fait un require du fichier config.php.  
 
Je pense que j'ai été plus clair, quelques heures de sommeil ça aide ;)  
j'y retourne  
 
bye


---------------
http://plainedemazerolles.free.fr
n°1679458
skeye
Posté le 31-01-2008 à 10:28:38  profilanswer
 

C'est pas à un utilisateur lambda de rentrer ces données dans un fichier de conf, c'est à la personne qui installe le site de le faire.[:skeye]
Et c'est fait une fois pour toutes par quelqu'un qui sait ce qu'il fait, c'est tout.


---------------
Can't buy what I want because it's free -
n°1679543
guiguivts
Posté le 31-01-2008 à 11:44:04  profilanswer
 

Pas dans ce cas. On a une appli distribuée. Plusieurs utilisateurs peuvent proposer de stocker certaines données dans leur bd. Ce sont donc des utilisateurs 'lambda' (ou presque) et doivent donner accès à leur bd via le formulaire.


---------------
http://plainedemazerolles.free.fr
n°1679545
skeye
Posté le 31-01-2008 à 11:44:46  profilanswer
 

...donc tu as probablement une meta-base stockant les utilisateurs?:o


---------------
Can't buy what I want because it's free -
n°1679550
guiguivts
Posté le 31-01-2008 à 11:54:01  profilanswer
 

oui, on pourrait eventuellement stocker les paramètres de connexion dans la metabase mais c'est pas terrible..  
 
En plus les utilisateurs sont créés bien après le traitement du formulaire..
 
Je précise que j'ai récupéré cette appli, ça fait 3 ans qu'elle est développée y'a des choix qui ont été faits et on ne peut pas tout changer.


---------------
http://plainedemazerolles.free.fr
n°1679554
skeye
Posté le 31-01-2008 à 11:55:11  profilanswer
 

Tu veux dire que les utilisateurs peuvent enregistrer les paramètres de leur base avant d'exister?[:pingouino]


---------------
Can't buy what I want because it's free -
n°1679555
guiguivts
Posté le 31-01-2008 à 11:55:19  profilanswer
 

Y'a pas une commande qui permet de dire qu'un dossier est propriétaires de tout le monde avec tous les droits ? (même avec un chmod 777 * j'arrive pas à faire de require sur le config.php


---------------
http://plainedemazerolles.free.fr
n°1679626
guiguivts
Posté le 31-01-2008 à 13:19:40  profilanswer
 

Bon en fait, un chmod arrange les choses mais c est pas terrible quand même..


---------------
http://plainedemazerolles.free.fr
mood
Publicité
Posté le 31-01-2008 à 13:19:40  profilanswer
 

n°1679919
guiguivts
Posté le 31-01-2008 à 16:38:32  profilanswer
 

Pas d'autres solutions que de donner tous les droits sur ce fichier ? Il n'y pas moyen de spécifier les droits lors du fopen ?


---------------
http://plainedemazerolles.free.fr
n°1679976
guiguivts
Posté le 31-01-2008 à 17:21:32  profilanswer
 

Un .htaccess ne peut pas me régler ce problème ?  
 
Si je comprend bien le problème. Quand je lance un navigateur à localhost je suis l'utilisateur www-data. Si un fichier dans le repertoire www a le propriétaire courant par exemple mathieu je ne pourrais pas écrire dessus.  
 
Donc comment faire sans passer par un chmod ou chown ?
 
Merci :)


---------------
http://plainedemazerolles.free.fr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  fopen permission

 

Sujets relatifs
[Applet signée et Permission]AccessControlException pour l'acces localfopen: fail to open stream - connection timeout
fopen avec une ressource webProbleme permission en local
quel est la fonction fopen en C# ?Permission refusée en ASP
[stdio.h]2 programmes font un fopen en "w" sur un même fichierfopen | 255 caractères | fichier csv avec chaines sup
[ C ] fopen() et fopen64() - Large filePermission refusée....
Plus de sujets relatifs à : fopen permission


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR