Le plugin de gestion utilisateur mysqlnd
(mysqlnd_uh
) permet aux utilisateurs
de définir des alternatives à la plupart des appels internes
du driver MySQL natif pour PHP
(mysqlnd
).
Mysqlnd et ses plugins, incluant PECL/mysqlnd_uh, opère sur une couche
se situant en dessous des extensions PHP MySQL. Un plugin mysqlnd
peut être considéré comme un proxy entre les extensions PHP MySQL et
le serveur MySQL, comme un exécutable PHP côté client. En raison du
fait que les plugins opèrent sur leurs propres couches en dessous des
extensions PHP, ils peuvent surveiller et modifier les actions
de l'application sans avoir à modifier l'application. Si les extensions
MySQL PHP (mysqli,
mysql,
PDO_MYSQL) sont compilées pour
utiliser mysqlnd
, les plugins peuvent être utilisés
pour :
La surveillance...
... des requêtes exécutées par n'importe quelle extension PHP MySQL
... des requêtes préparées exécutées par n'importe quelle extension PHP MySQL
L'audite sur...
... de la détection des utilisations de la base de données
... la protection contre les injections SQL en utilisant des listes blanches et noires
Mais aussi...
... à la balance de charge des connexions
Le driver natif MySQL pour PHP (mysqlnd) fournit une API C interne. Les plugins C, comme le plugin de gestion utilisateur mysqlnd, peuvent étendre les fonctionnalités de mysqlnd. PECL/mysqlnd_uh fait parti de l'API C interne disponible à l'utilisateur PHP pour le développement de plugin avec PHP.
Note: Statut
Le plugin de gestion utilisateur mysqlnd est au statut alpha. Prenez les précautions nécessaires avant de l'utiliser en environnement de production.
PECL/mysqlnd_uh fournit un accès utilisateur aux utilisateurs MySQL,
aux mots de passe MySQL utilisés par n'importe quelle extension PHP
MySQL pour se connecter à MySQL. Il permet la surveillance de
toutes les requêtes et requêtes préparées, exposant ainsi la
chaîne de requête à l'utilisateur. Aussi, l'extension doit être
installée avec beaucoup de prudence. L'option de configuration
PHP_INI_SYSTEM
mysqlnd_uh.enable
peut être utilisée pour interdire aux utilisateurs l'interception
des appels mysqlnd.
L'obfuscateur de code et les technologies similaires ne sont pas suffisant pour prévenir la surveillance des activités de la bibliothèque mysqlnd ; si PECL/mysqlnd_uh est disponible, l'utilisateur peut installer un proxy, par exemple, en utilisant auto_prepend_file.
La plupart des fonctions mysqlnd_uh sont décrites brièvement
car l'extension mysqli
n'est qu'une couche d'abstraction fine au dessus de l'API C MySQL,
fourni par la bibliothèque mysqlnd
. Aussi,
la documentation correspondante à mysqli
(ainsi que le manuel de référence MySQL) peut être consultée pour
y récupérer plus d'informations sur une fonction particulière.
Le raccourci mysqlnd_uh
signifie
mysqlnd user handler
et a été le nom choisi
depuis le début du développement.