SPIP enregistre la quasi-totalité des paramétrages opérationnels et des données... en base de données ; encore faut-il y avoir accès au sein du code php !
Ou se trouve ce fichier
SPIP utilise un petit fichier texte source php, appelé connect.php
(autrefois inc-connect.php ), situé dans un répertoire spécifique, ./config
protégé en acces Web ; il est important de restreindre tous les accès à ce fichier, car sa lecture permettrait à tout utilisateur Web (en particulier utilisateur d’un compte sur le même groupe de serveurs d’hébergement) de récupérer l’ensemble de vos données contenues en base de données : les articles, mais aussi les mots de passe, éléments de connexion et l’identité (mail) de tous vos utilisateurs....
A l’installation, SPIP crée donc automatiquement un fichier de protection au standard Apache, le .htaccess dans les sous-répertoires sensibles...
Que contient-il ?
Ce fichier contient essentiellement les codes de connexion au service de base de données, c’est à dire (cf. Check-liste d’installation SPIP.) : le moteur de base de donnée , Host et Port / User et password, DBname et $prefix eventuel, voire des options [1].
Voici la version la plus simple de la fonction db_connect :
spip_connect_db('localhost','','root','','spip','mysql', 'spip','');
Vous en trouveriez la définition dans le fichier source ./ecrire/base/connect_sql.php
:
function spip_connect_db($host, $port, $login, $pass, $db='', $type='mysql', $prefixe='', $auth='')
qui vous permet de comprendre comment retrouver vos codes...
-
$host
: adresse IP ou nom du serveur de base de données [2], -
$port
: un numéro de ’port’ TCP/IP pour atteindre le SGBD [3] -
$login
: le nom utilisateur de connexion au SGBD -
$pass
: un mot de passe [4] -
$db
: le nom de la base de données utilisé -
$type
: le type du moteur de SGBD : moteurs et documentations SQL / SPIP -
$prefixe
: le prefix qui identifie le jeu de tables du SPIP... -
$auth
: une zone d’options (voir ci-dessous pour la connexion LDAP)
Connexion LDAP
Il est possible de demander à SPIP de vérifier la connexion des auteurs dans un annuaire AD/LDAP en précisant le paramètre supplémentaire dans le fichier de connexion SPIP.
spip_connect_db('localhost','','root','','user','mysql', 'spip','ldap');
Exemple : appel à un fichier ldap.php
ci-dessous, déposé dans le même dossier pour compléter la configuration d’une connexion SPIP :
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
$GLOBALS['ldap_base'] = 'OU=Utilisateurs,DC=domaine,DC=org';
$GLOBALS['ldap_link'] = @ldap_connect('ad.domaine.org','389');
@ldap_set_option($GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'3');
@ldap_bind($GLOBALS['ldap_link'],'CN=User,OU=Utilisateurs,DC=domaine,DC=org','user');
$GLOBALS['ldap_champs'] = array('login' => array('sAMAccountName','uid','login','userid','cn','sn'),'nom' => 'cn','email' => 'mail','bio' => 'description',);
Le compte utilisé -ici sans password- doit pouvoir accéder à l’ensemble des comptes concernés, spécifiés par la présence d’une valeur ’ldap’ dans le champ ’source’ de la table spip_auteurs
.
Cas de multi-bases
D’après Les possibilites multi-bases, il est possible d’utiliser plusieurs bases (meme dans plusieurs moteurs de SGBD), en définissant plusieurs fichiers de connexion selon ce modèle ; on doit alors compléter la syntaxe de la table parcourue dans l’instruction principale de BOUCLE, en précédant le nom de la table du nom du fichier de connexion à la BdD correspondante... Les webmestres peuvent utiliser l’interface de SPIP [5] pour remplir ce fichier de façon interactive, ou le
Outre les ajouter dans le dossier protégé ./config/
(solution standard SPIP), il est aussi loisible de créer ces fichiers dans un sous-dossier ./connect/
, pour utilisation dans un plugin [6]...
Article publié le 3 septembre 2013, et actualisé en juin 2018 .
Répondre à cet article