Introducción

El complemento de gestión del usuario de mysqlnd (mysqlnd_uh) permite a los usuarios establecer ganchos para la mayoría de las llamadas internas del controlador nativo de MySQL para PHP (mysqlnd). Mysqlnd y sus complementos, incluido PECL/mysqlnd_uh, operan en una capa por debajo de las extensiones de MySQL para PHP. Un complemento de mysqlnd puede considerarse como un delegado (proxy) entre las extensiones de MySQL para PHP y el servidor MySQL como parte del ejecutable de PHP en el lado del cliente. Ya que los complementos operan en sus propias capas bajo las extensiones de MySQL para PHP, pueden monitorizar y cambiar las acciones de una aplicación sin la necesidad de efectuar cambios en la misma. Si las extensiones de MySQL para PHP (mysqli, mysql, PDO_MYSQL) están compiladas para usar mysqlnd, este comlemento puede utilizarse para:

  • Monitorizar

    • consultas ejecutas por cualquier extensión de MySQL para PHP

    • sentencias preparadas que son ejecutadas por cualquier extensión de MySQL para PHP

  • Auditar

    • la detección del uso de una base de datos

    • la protección contra inyecciones SQL usando listas negras y blancas

  • Varios

    • Conexiones con equilibrado de carga

El controlador nativo de MySQL para PHP (mysqlnd) introduce una API en C de complementos internos. Estos complementos, como el complemento de gestión del usuario, pueden ampliar la funcionalidad de mysqlnd. PECL/mysqlnd_uh es parte de la API en C de complementos internos disponibles para el usuario desarrollador con PHP.

Nota: Estado

El complemento de gestión del usuario de mysqlnd está en un estado alfa. Se han de tomar las precauciones pertinentes para usarlo en entornos de producción.

Consideraciones de seguridad

PECL/mysqlnd_uh proporciona a los usuarios el acceso a los nombres de usuario y contraseñas de MySQL usados por cualquier extensión de MySQL para PHP que se conecte a MySQL. Permite la monitorización de todas las consultas y sentencias preparadas exponiéndolas al usuario. Por lo tanto, la extensión debería ser instalada con precaución. El ajuste de configuración de PHP_INI_SYSTEM mysqlnd_uh.enable se puede usar para evitar que los usuarios capturen las llamadas a mysqlnd.

Los ofuscadores de código y tecnologías similares no son adecuados para evitar la monitorización de las actividades de la biblioteca mysqlnd si PECL/mysqlnd_uh está disponible y el usuario puede instalar un proxy, por ejemplo, usando auto_prepend_file.

Nota sobre la documentación

Muchas de las funciones de mysqlnd_uh están descritas brevemente debido a que la extensión mysqli es una fina capa de abstracción en lo alto de la API en C de MySQL que proporciona la biblioteca mysqlnd. Por lo tanto, se puede consultar la documentación correspondiente a mysqli (junto con el manual de referencia de MySQL manual) para recibir más información sobre una función en particular.

Sobre el nombre

La abreviatura mysqlnd_uh significa en español gestión del usuario de mysqlnd, y ha sido el nombre desde el desarrollo inicial del complemento.