Como desativar o INFILE LOCAL no MySQL 5.5 Ubuntu 12.04

1

Não é possível desabilitar o INFILE LOCAL (por motivos de segurança) no mysql Ver 14.14 Distrib 5.5.25a, para o debian-linux-gnu (i686) usando readline 6.2 no Ubuntu 12.04; Aqui está meu /etc/mysql/my.cnf

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
loose-local-infile=0
local-infile=0

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
local-infile=0
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

eu faço

sudo /etc/init.d/mysql restart

mysql -u root -p

mysql> SELECT load_file("/etc/passwd");

E ele mostra meu conteúdo do / etc / passwd. Então não funcionou.

    
por FoREacH 20.08.2012 / 14:52

1 resposta

2

De referência do MySQL Docs para load_file , ele pode ser visto que load_file é a função MySQL que retorna o conteúdo do arquivo como string. Não faz mais do que isso. Não tem nada a ver com local_infile.

Por motivos de segurança, dos mesmos documentos:

If the secure_file_priv system variable is set to a nonempty directory name, the file to be loaded must be located in that directory.

Portanto, se você definir a variável de sistema "secure_file_priv", o arquivo deverá estar presente nesse diretório específico. Além disso, o usuário requer privilégios de nível de arquivo para executar essa instrução. Simplesmente não conceda privilégios de nível de arquivo aos usuários que acessam o banco de dados, se você quiser que ele seja protegido.

Além disso, infil local é para LOAD DATA , que carrega dados na tabela, afetando as tabelas. Não tem nada a ver com a função load_file ().

    
por 21.08.2012 / 06:41