При использовании MySQL нельзя игнорировать проблемы безопасности. Ниже приведены 23 примечания, предложенные MySQL:
1. Если соединение между клиентом и сервером должно охватывать и проходить через ненадежную сеть, вам необходимо использовать туннель SSH для шифрования связи соединения.
2. Используйте оператор setpassword, чтобы изменить пароль пользователя. В три этапа сначала войдите в систему базы данных с помощью «mysql -u root», затем «mysql> update mysql.user set пароль=пароль('newpwd')». и, наконец, выполнить «сброс привилегий».
3. Атаки, от которых необходимо защититься, включают защиту от подслушивания, фальсификацию, воспроизведение, отказ в обслуживании и т. д., которые не связаны с доступностью и отказоустойчивостью. Все соединения, запросы и другие операции выполняются с использованием мер безопасности на основе ACL (список контроля доступа). Также имеется некоторая поддержка SSL-соединений.
4. Любому другому пользователю, кроме пользователя root, не разрешен доступ к таблице пользователей в основной базе данных mysql;
после утечки зашифрованного пароля пользователя, хранящегося в таблице пользователей, другие могут использовать соответствующую базу данных с именем пользователя/паролем по своему желанию. ;
5. Используйте операторы предоставления и отзыва для управления доступом пользователей.
6. Не используйте пароли в виде простого текста, а используйте односторонние хеш-функции, такие как md5() и sha1(), для установки паролей
; символы из словаря в качестве пароля;
8. Используйте брандмауэр, чтобы удалить 50% внешних угроз, и позвольте системе базы данных работать за брандмауэром или поместите ее в DMZ-зону.
9. Используйте nmap для сканирования порта 3306 из Интернета
;или используйте telnet server_host. Тест метода 3306 не может разрешить доступ к TCP-порту 3306 сервера базы данных из ненадежной сети, поэтому необходимо выполнить настройки на брандмауэре или маршрутизаторе.
10. Чтобы предотвратить злонамеренную передачу незаконных параметров; , например, где ID=234, другие. Но ввод где ID=234 ИЛИ 1=1 приводит к отображению всех, поэтому используйте '' или "" для использования строк в веб-форме и добавьте %22 к динамическому URL-адресу для представления двойные кавычки, %23 для обозначения знака фунта и %27 Представляет одинарную кавычку; очень опасно передавать непроверенные значения в базу данных MySQL.
11. Проверьте размер при передаче данных в MySQL.
12. Приложения, которым это необходимо; для подключения к базе данных следует использовать общие учетные записи пользователей и открывать только несколько необходимых. Пользователю предоставляются разрешения
13. Использовать специальные функции escape-символов в различных интерфейсах программирования (C C++ PHP Perl Java JDBC и т. д.);
при использовании базы данных mysql в Интернете обязательно передавайте меньше текстовых данных и используйте SSL и SSH. Передаются зашифрованные данные.
14. Научитесь использовать инструменты tcpdump и strings для проверки безопасности передаваемых данных, например tcpdump -l; -i eth0 -w -src или dst строки порта 3306. Запустите службу базы данных mysql от имени обычного пользователя
15. Не используйте символ ссылки на таблицу, выберите параметр --skip-symbolic-links
16. Убедитесь, что в каталоге mysql находится только тот пользователь, который запускает службу базы данных; может читать и читать файлы. Разрешение на запись;
17. Разрешения процесса или суперпользователя не могут быть предоставлены пользователям, не являющимся администраторами. В списке процессов mysqladmin может быть указан текст выполняемого в данный момент запроса, который можно использовать для отключения клиентских подключений, изменения. состояние рабочих параметров сервера и управление копированием и репликацией баз данных. Сервер
18. Права доступа к файлам не предоставляются пользователям, кроме администраторов, чтобы предотвратить проблему загрузки данных «/etc/passwd» в таблицу и последующего использования выбора для отображения. 19.
Если вы не доверяете службам компании, предоставляющей услуги DNS, вы можете установить только числовые IP-адреса в таблице разрешений имен.
20. Используйте переменную max_user_connections, чтобы включить процесс службы mysqld для ограничения количества подключений; указанная учетная запись.
21. Оператор предоставления также поддерживает параметры управления ресурсами.
22. Запустите переключатель параметров безопасности процесса службы mysqld, --local-infile=0 или 1. Если он равен 0, клиентская программа не может использовать локальную загрузку; data. Пример предоставления гранта вставки(пользователь) в mysql.user для 'user_name'@'host_name' ; при использовании - Система пропуска-грантов не будет реализовывать какой-либо контроль доступа для доступа любого пользователя, но вы можете использовать его. mysqladmin flash-privileges или mysqladmin reload, чтобы включить контроль доступа, по умолчанию оператор show Databases открыт для всех пользователей, и вы можете использовать --skip-show-databases, чтобы отключить его.
23. При возникновении ошибки «Ошибка 1045 (28000) Доступ запрещен для пользователя root» @ «localhost» (с использованием пароля: NO), вам необходимо сбросить пароль. Конкретный метод: сначала начните с --skip-grant. -tables параметр mysqld, затем выполните mysql -u root mysql,mysql>update user setpassword=password('newpassword') где user='root';mysql>Flush привилегии; и, наконец, перезапустите mysql.