Detalhes de Segurança com LOAD DATA LOCAL
No MariaDB 3.23.49 e MariaDB 4.0.2 (4.0.13 no Windows), adicionamos algumas novas opções para lidar com possíveis detalhes de segurança junto ao LOAD DATA LOCAL.
Exstem dois problemas possíveis com o suporte a este comando:
Como a leitura deste arquivo é iniciada por um servidor, pode-se teoricamente criar um servidor MariaDB corrigido que poderia ler qualquer arquivo na máquina cliente na qual o usuário atual tenha acesso, quando o cliente envia uma consulta a tabela.
Em um ambiente web onde os clientes estão conectados a um servidor web, um usuário poderia usar LOAD DATA LOCAL para ler qualquer arquivo no qual o processo do servidor web tenha acesso de leitura (assumindo que um usuário poderia executar qualquer comando no servidor SQL).
Existem dois arquivos separados para isto:
Se você não configurar o MariaDB com --enable-local-infile, então LOAD DATA LOCAL será disabilitado por todos os clientes, a menos que se chame mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) no cliente. Leia "mysql_options()".
Para o cliente de linha de comando MariaDB, LOAD DATA LOCAL pode ser habilitado especificado a opção --local-infile[=1], ou disabilitando com --local-infile=0.
Por padrão, todos os clientes e bibliotacas MariaDB são compilados com --enable-local-infile, para ser compatível com o MariaDB 3.23.48 e anterior.
Pode se desabilitar todos os comandos LOAD DATA LOCAL no servidor MariaDB iniciando o mysqld com --local-infile=0.
No caso em que LOAD DATA LOCAL INFILE está disabilitado no servidor ou no cliente, você receberá a seguinte mensagem de erro (1148):