поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    4.2.4. Вопросы безопасности, относящиеся к команде LOAD DATA LOCAL

    Чтобы решить проблемы безопасности, которые могут возникнуть при использовании команды LOAD DATA LOCAL,в MySQL 3.23.49 и MySQL 4.0.2 были добавлены новые опции.

    При поддержке этой команды могут возникнуть две проблемы:

    Первая: поскольку чтение файла инициируется сервером, теоретически имеется возможность создать ``доработанный'' при помощи патча сервер MySQL, способный читать любые файлы на клиентской машине, к которой текущий пользователь имеет доступ для чтения, в то время, когда клиент направляет запрос к таблице.

    Вторая: в веб-среде, в которой подсоединение клиентов осуществляется с веб-сервера, пользователь может использовать команду LOAD DATA LOCAL для чтения любых файлов, к которым процесс веб-сервера имеет доступ для чтения (если предположить, что пользователь может выполнять на сервере SQL любые команды).

    Эти проблемы решаются с помощью двух следующих исправлений:

    Если вы конфигурируете MySQL без опции --enable-local-infile, то команда LOAD DATA LOCAL будет запрещена для всех клиентов, если, конечно, они не будут вызывать mysql_options (... MYSQL_OPT_LOCAL_INFILE, 0). Обратитесь к разделу See Раздел 8.4.3.39, «mysql_options()».

    В случае клиента mysql, LOAD DATA LOCAL может быть разблокирована заданием опции --local-infile[=1] или заблокирована с помощью опции --local-infile=0.

    По умолчанию все MySQL-клиенты и библиотеки компилируются с опцией --enable-local-infile для обеспечения совместимости с MySQL 3.23.48 и более старыми версиями.

    Блокировку всех команд LOAD DATA LOCAL на MySQL-сервере можно осуществить путем запуска mysqld с опцией --local-infile=0.

    В случае, если команда LOAD DATA LOCAL INFILE заблокирована на сервере или клиенте, вы получите следующее сообщение об ошибке (1148):

    The used command is not allowed with this MySQL version
    
     
    © 1997-2005 PHP Club Team
    Rambler's Top100