# Introduction

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.

## Considérations relatives à la sécurité

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.

## Note sur la documentation

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.

## Sur le nom

Le raccourci mysqlnd_uh signifie mysqlnd user handler et a été le nom choisi depuis le début du développement.