8710 sujets

Développement web côté serveur, CMS

Bonjour,

J'aimerais déployer un projet impliquant une base de donnée MySQL sur le serveur mutualisé de la fac (sous Linux) dans laquelle je suis. Pour faire simple, l'infrastructure du serveur est telle que chaque étudiant possède sa session avec son espace de stockage personnel. Un serveur Apache est installé et configuré de telle manière que pour chaque utilisateur, le répertoire "public_html" est accessible via un navigateur si les permissions de ce répertoire permettent à tout le monde de lire et d'exécuter le contenu de ce répertoire.

Et c'est là qu'est mon problème : Etant donné que mes scripts sont potentiellement lisible par tous les utilisateurs du serveur, tous les étudiants vont avoir accès au mot de passe de ma base SQL qui est quelque part en clair dans un fichier de configuration PHP.

D'où ma question : est-il possible de cacher ce mot de passe (que je ne saurais voir Smiley langue ) d'une quelconque manière ?
Modifié par Bguigui67 (20 Jan 2015 - 09:45)
Salut...

Je suis pas trop caler en infrastructure réseau Smiley smile MAIS Smiley smile

ton rep public_html est je suppose de toute façon dans le meme domaine que le reste des répertoires...

les fichiers php ont des droits utilisateurs un peu plus poussé qu'un utilisateur normal logiquement...

Donc je pense qu'il te suffirais de mettre tes infos de connexion dans un répertoire protégé ailleurs dans le serveur, puis de faire un incldue de ce répertoire dans ton fichier de connexion PHP

du coup les infos de connexion ne serait visible que par la personne habilité à voir ce fameux répertoire...
Salut !

Tout d'abord, merci de ta réponse ! Smiley smile
J'ai essayé et ça n'a pas marché pour la bonne est simple raison que PHP, en tant qu'utilisateur du système, doit avoir les permissions de lecture sur ce fichier. Or, comme bien sur je n'ai pas les droits d'administrateur (ça serait trop facile sinon hein Smiley langue ), je n'ai, pas à ma connaissance, de moyen d'autoriser seulement PHP et moi à lire ce fichier. Est-ce possible ?
Ok

DOnc.. récapitulons.

Public_html est l'endroit où tu met ton code Smiley cligne
TOUT le monde peut accéder à public_html MAIS avec un navigateur web

Question :
Est ce que tout le monde peut atteindre l'arborescence de public_html via le reseau normal (donc sans navigateur) ??

SI oui : là je vois pas de solution

SI NON : OK Smiley smile donc faire un répertoire dans public_html avec un htaccess et un htpassword Smiley smile
poser dans ce répertoire tes infos de connexion pour les inclure dans tes codes php Smiley cligne

Là PHP saura aller l'ouvrir Smiley smile et ceux qui n'ont pas l'accès ne pourront pas rentrer dans ce répertoire via un navigateur Smiley smile
Effectivement, je me suis peut être mal exprimé (désolé, les explications, c'est pas mon fort Smiley langue ), mais ce que je voulais dire, c'est bien que n'importe qui (n'importe quel utilisateur du système) peut accéder à ces fichiers en dehors d'un navigateur.

Donc, pas de solution pour l'instant ...Tant pis, je trouverais déjà un moyen ! (foi d'animal, intérêt et principal ! Smiley langue )

En tout cas, merci beaucoup pour ton aide ! Smiley biggrin
Bonjour,
Sinon tu stockes un mot de passe qui doit passer dans une fonction de "decryptage" avant de pouvoir être lu correctement.
Par exemple une fonction qui prendrais 1 caractère sur 3.
Donc pour le mot de passe "toto" tu écrirais "tidou4tl5o" par exemple.
Certe il suffirait d'utiliser ta fonction pour comprendre comment se déchiffre ton mdp mais déjà ça éviterait le bête copier-coller.
sinon il te reste encore une solution si tu connais le SU Smiley smile

faire un chown de TON utilisateur sur le fichier qui contient les accès et bien sur le user PHP Smiley cligne
Merci beaucoup à vous deux pour vos réponses. Smiley smile

Malheureusement aucune des deux n'est envisageable puisque :
- Je n'ai bien sûr pas le SU pour cette machine (trop facile sinon hein Smiley langue )
- L'intégralité du code source est visible pour les utilisateurs de serveur et donc tout processus de cryptage / décryptage ne servirait à rien. (@Raphi Ton raisonnement ne marche pas pour des utilisateurs qui sont en Math-Info Smiley langue )

Finalement, j'ai trouvé une autre solution d'hébergement, donc résolu mais pas trop Smiley langue
Bguigui67 a écrit :
(@Raphi Ton raisonnement ne marche pas pour des utilisateurs qui sont en Math-Info Smiley langue )

Dans la mesure où la personne sait se connecter en FTP et sait ce que veux dire base de données c'est mal parti pour dissimuler l'info.
Après si la fonction fait appel à une autre fonction située dans un autre fichier, 2 ou 3 fois de suite ça peux vite devenir relou à trouver. Peut-être que la personne cherchera pas plus loin. Mais bon ça reste risqué (et c'est se casser la tête inutilement)... Smiley lol

Sinon un petit serveur ovh mutualisé à 28€ l'année c'est pas mal aussi.