Options de démarrage qui concernent la sécurité <<< |
Problèmes de sécurité avec LOAD DATA LOCAL | Rôle du système de privilèges >>> |
4.2 Règles de sécurité et droits d'accès au serveur MySQL 4 Administration du serveur Manuel de Référence MySQL 4.1 : Version Française . Instructions générales de sécurité . Comment protéger MySQL contre les pirates . Options de démarrage qui concernent la sécurité ->Problèmes de sécurité avec LOAD DATA LOCAL . Rôle du système de privilèges . Comment fonctionne le système de droits . Droits fournis par MySQL . Se connecter au serveur MySQL . Contrôle d'accès, étape 1 : Vérification de la connexion . Contrôle d'accès, étape 2 : Vérification de la requête . Causes des erreurs Access denied |
4.2.4 Problèmes de sécurité avec LOAD DATA LOCAL
Depuis MySQL 3.23.49 et MySQL 4.0.2, nous avons ajouté de nouvelles options pour traiter les problèmes de sécurité liés à LOAD DATA 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 patché qui pourrait lire n'importe quel fichier sur 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).Il y a deux protections distinctes pour ces problèmes : 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 . Par défaut, tous les clients MySQL et les librairies sont compilés avec --enable-local-infile , pour être compatible avec MySQL 3.23.48 plus ancien.Vous pouvez désactiver toutes les commandes LOAD DATA LOCAL du serveur MySQL en démarrant mysqld avec --local-infile=0 . Au cas où LOAD DATA LOCAL INFILE est désactivé sur le serveur ou le client, vous obtiendrez le message d'erreur (1148) :
|
<< | Problèmes de sécurité avec LOAD DATA LOCAL | >> |
Options de démarrage qui concernent la sécurité | Règles de sécurité et droits d'accès au serveur MySQL | Rôle du système de privilèges |