Options de démarrage qui concernent la sécurité
<<<
Problèmes de sécurité avec LOAD DATA LOCAL Administration du serveur
>>>

5.3 Sécurité générale du serveur
5 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française

Guide de sécurité
Protéger MySQL contre les attaques
Options de démarrage qui concernent la sécurité
->Problèmes de sécurité avec LOAD DATA LOCAL

5.3.4 Problèmes de sécurité avec LOAD DATA LOCAL

La commande LOAD DATA peut lire des données sur le serveur hôte, ou bien charger un fichier sur le client, avec l'option LOCAL .

Il existe deux problèmes particuliers pour le support de cette commande :
  • Comme la lecture du fichier est réalisée depuis le serveur, il est possible théoriquement de créer un serveur MySQL modifié qui pourrait lire n'importe quel fichier de la machine cliente, qui serait accessible à l'utilisateur.
  • Dans un environnement web, où les clients se connectent depuis un serveur web, un utilisateur peut se servir de la commande LOAD DATA LOCAL pour lire les fichiers qui sont sur le serveur web, et auquel ce dernier a accès (en supposant qu'un utilisateur peut exécuter n'importe quelle commande sur le serveur).
Pour traiter ces problèmes, nous avons changé la gestion des commandes LOAD DATA LOCAL depuis MySQL version 3.23.49 et MySQL version 4.0.2 (4.0.13 pour Windows) :
  • Par défaut, tous les clients MySQL et les bibliothèques des distributions binaires sont compilées avec l'option --enable-local-infile , pour être compatible avec MySQL 3.23.48 et plus ancien.
  • Si vous ne configurez pas MySQL avec l'option --enable-local-infile , alors LOAD DATA LOCAL sera désactivé par tous les clients, à moins que l'option mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) soit activée dans le client. mysql_options() .
  • Pour le client en ligne de commande mysql , LOAD DATA LOCAL peut être activé en spécifiant l'option --local-infile[=1] , ou désactivé avec --local-infile=0 .
  • Vous pouvez désactiver toutes les commandes LOAD DATA LOCAL du serveur MySQL en démarrant mysqld avec --local-infile=0 . Similairement, pour mysqlimport , les options --local et -L active le chargement distant de fichiers. Dans ce cas, il faut que le serveur accepte aussi cette configuration pour que l'opération fonctionne.
  • Au cas où LOAD DATA LOCAL INFILE est désactivé sur le serveur ou le client, vous obtiendrez le message d'erreur (1148) :
    
    The used command is not allowed with this MySQL version
    

<< Problèmes de sécurité avec LOAD DATA LOCAL >>
Options de démarrage qui concernent la sécurité Sécurité générale du serveur Administration du serveur