Sécurité des fichiers d'un blog

Invité
Invité n'ayant pas de compte PHPfrance

17 juin 2007, 15:23

Bonjour,

La question est sans doute naïve, mais je me demande comment protéger les fichiers qui sont sur mon serveur contre une attaque. Je débute en php et mysql, mais j'ai fait beaucoup de programmation dans plusieurs autres langages.

Il s'agit d'un blog distribuable et je l'ai organisé de la facon suivante :

Une fois les fichiers copiés sur le serveur, l'administrateur appelle "Install.php" et fournit à la page un nom d'utiliateur, un mot de passe et les parametres de la base de donnée sql (serveur, port, login, pwd, nom de la db).

Lorsque le formulaire est validé, les données sont enregistrées dans un fichier "blog.config" sur le serveur. L'utilisateur devra détruire install.php (ou bien le scripte s'en chargera, à voir...)

Apres, le blog fonctionne normalement : En utilisant une page d'administration l'administrateur s'identifie avec les infos données lors de l'installation (on les compare à celles de blog.config pour valider l'acces). Une fois validés, ces infos sont passées de page en page via des champs cachés de formulaire, ou stockées dans un cookie. (Quelle solution est préférable ?) L'admin peut fire ses modifs au blog.

Sur les pages du blog, les visiteurs peuvent laisser des commentaires texte qui doit etre exempt de code et scriptes.

Il est tres important pour le blog que le fichier blog.config ne puisse etre lu que par les pages php du serveur. Comment s'en assurer ?

Conseilez-vous d'entrer les images dans la base de données ? Ou de les laisser dans un repertoire du serveur ?

Merci

ViPHP
ViPHP | 5924 Messages

17 juin 2007, 16:26

Apres, le blog fonctionne normalement : En utilisant une page d'administration l'administrateur s'identifie avec les infos données lors de l'installation (on les compare à celles de blog.config pour valider l'acces). Une fois validés, ces infos sont passées de page en page via des champs cachés de formulaire, ou stockées dans un cookie. (Quelle solution est préférable ?) L'admin peut fire ses modifs au blog.
Les deux solutions sont quasiment équivalentes, c'est à dire que le client enverra systématiquement les informations de connexion à chaque page, ce qui est mauvais en termes de sécurité, et encore pire dans la solution des champs cachés, c'est qu'il y aura en plus un transfert des identifiants du serveur vers le client, avec même un affichage chez le client s'ils sont placés dans l'url.
Le mieux est donc de limiter les transferts avec des sessions, qu'elles soient gérées par php ou par ton code.
Sur les pages du blog, les visiteurs peuvent laisser des commentaires texte qui doit etre exempt de code et scriptes.
Il faut enlever les balises ou les encoder en entités html avec respectivement strip_tags() ou htmlentities() selon le choix que tu fais.
Il est tres important pour le blog que le fichier blog.config ne puisse etre lu que par les pages php du serveur. Comment s'en assurer ?
Il faut que tu places dans le dossier dans lequel tu mets ce fichier un fichier .htaccess avec à l'intérieur les instructions :

Code : Tout sélectionner

Order Deny,Allow Deny From All
De manière à ce que personne ne puisse accéder à aucun fichier de ce dossier.
Conseilez-vous d'entrer les images dans la base de données ? Ou de les laisser dans un repertoire du serveur ?
Si tes images changent peu et peuvent avoir des liens statiques, il est contreproductif de les mettre en bdd, après ca dépend de ce à quoi elles servent et de la manière dont elles sont utilisées.