8722 sujets

Développement web côté serveur, CMS

Bonjour à toutes et bonjour à tous,

Pour pouvoir centraliser la gestion de plusieurs de mes sites internet, je suis en train de développer un petit système de gestion de contenu (ou CMS). Ce CMS sera donc hébergé sur un autre nom de domaine.

Mon souci est donc, que ce CMS devrait pouvoir se connecter directement et automatiquement aux différentes bases de données de mes sites internet (en fonction du compte qui sera connecté).
Créer une table serveur pour y ajouter toutes les informations nécessaires à la connexion des bases de données ne me semble pas sécurisée, surtout que celles-ci devraient-être en clair pour que les connexions puissent ce faire.


Auriez-vous des conseils qui me permettraient de régler mon souci ?

Merci d'avance.
Bonjour

Concernant votre souci, essayez de limiter l'accès aux bases de données à une adresse IP Fixe.

En plus, je pense qu'il faut protéger le Back-Office de votre future CMS par un fichier htaccess.

Effectuer les contrôles nécessaires quand vous récupérer une variable (injection SQL).

Enregistrer les mots passes crypter au niveau de la base de données.

Auditer votre CMS avec Acunetix (Scanner de vulnérabilités).
Bonjour et merci pour votre réponse,

Pourriez-vous m'expliquer en quoi et surtout comment un fichier htaccess pourrait protéger mon CMS ?

Pour les mots de passes, je ne peux que hacher celui des comptes utilisateurs (différents suivant le site que je vais administrer) mais j'en reviens à une de mes questions concernant la connexion aux différentes bases de données.

Comment puis-je faire pour que depuis un seul site internet (mon CMS), je puisse en me connectant via un compte utilisateur être connecté automatiquement à la base de données correspondante en évitant d'ajouter ses dernières informations de connexion directement en clair dans une table ?
Je ferais un truc genre :

function infoServeur($serveur)
{
   if($serveur==1){$host=xxx;$db=xxx;$login=xxx;$pass=xxx;}
   if($serveur==2){$host=yyy;$db=yyy;$login=yyy;$pass=yyy;}
}


Et dans la table, tu lies un compte avec un n° de serveur

J'ai travaillé un bout de temps comme ça pour m'éviter d'avoir deux fichiers de connexion différents entre la prod' et le test ^^ (serveur test qui n'était jamais qu'un sous-répertoire du serveur de prod' en l'occurrence)
Si les mots de passe de tes sites distants sont hashés en base de données, ceux-ci doivent forcément être stockés en clair dans ta base qui les manage tous.

Un hash fait intervenir une fonction non bijective (ie il n'existe pas de fonction inverse qui à partir du hash te rend la valeur en clair).

Donc si tu ne veux pas garder les mdps clair dans ta base, il faut choisir un algo de cryptage avec fonction bijective.

Si ce n'est pas possible, la solution de maisonduweb et des fichiers htaccess me parait bonne.
(on peut voir les htaccess comme des filtres, donc tu peux interdire l'acces à ton serveur de management à toutes les @IP et protocoles, sauf si l'adresse demandeuse c'est la tienne).