Назад | Перейти на главную страницу

Как защитить сервер базы данных?

В настоящее время моего пользователя базы данных и его пароль довольно легко угадать, например.

пользователь базы данных: dbadmin

база данных pwd: super + имя компании

Что и как сгенерировать безопасный безопасный пароль базы данных? Используя md5 или sha1 ??

На что мне нужно обратить внимание, чтобы защитить мою базу данных?

Я использую php, спасибо

php не имеет значения при выборе паролей или имен пользователей, ни один язык программирования не должен иметь на него никакого реального влияния. Я всегда генерировал пароли для любой службы с помощью pwgen -syB. Для чего-то вроде базы данных, где вы вставляете пароль в файл и вам не нужно его запоминать, я бы, вероятно, использовал pwgen -syB 10 или 20.

Вероятно, более важно, какую базу данных вы используете. Как вы не говорите, я дам общий совет. Если прокомментируете, постараюсь дать более конкретную помощь.

Вам следует обратить внимание на несколько областей. Прежде всего, если база данных находится на том же хосте, что и приложение, настройте базу данных для привязки только к интерфейсу обратной связи. Это означает, что база данных недоступна по сети. Вы должны быть на локальном компьютере, чтобы получить к нему доступ. Это не помешает локальным пользователям или кому-либо, кто взломал машину. Если база данных находится на удаленном сервере, обратите внимание на ограничение доступа только с сервера приложений. Если вы не доверяете сети между хостами, попробуйте использовать SSL для подключения.

Во-вторых, проверьте свои разрешения, предоставленные отдельным пользователям. Большинство серверов баз данных имеют очень гибкий набор разрешений, которые вы можете предоставлять или отзывать с отдельных серверов. Если вам нужен только пользователь для чтения из базы данных, предоставьте ему только привилегии SELECT. На самом деле не должно быть никаких причин, по которым веб-приложению нужна возможность изменять схему, поэтому не давайте им возможность использовать CREATE, CHANGE или DROP.

Если вы не можете получить доступ к базе данных удаленно, использование надежного пароля для вашего пользователя бесполезно.

Одна вещь, о которой вы должны быть очень осторожны, - это проводить аудит вашего PHP, чтобы предотвратить атаки SQL-инъекций на вашу базу данных. В PHP об этом легко забыть, поскольку он не особо помогает. В других языках обычно используются заполнители, что делает этот тип атаки практически несущественным.

В качестве примечания, защита базы данных также должна состоять из того, к каким частям всей базы данных имеет доступ пользователь, имеющий доступ, и какие действия он может с ней выполнять. Так что подумайте, что у вас грант заранее.

Выбор алгоритма хеширования (SHA-1 или MD5) не влияет на надежность самого пароля. Он используется только сервером базы данных для хранения строки, представляющей ваш пароль.

Если вы защищаете место, где ваши пароли физически хранятся (что обычно является хорошей идеей), не имеет значения, выберете ли вы SHA-1 или MD5.

Я бы выбрал SHA-1, потому что в настоящее время он более безопасен, чем MD5, но в этой особой ситуации это не имеет значения.

Я использую Diceware для выбора надежных паролей. Вы тоже должны.

http://world.std.com/~reinhold/diceware.html

Одна вещь, о которой вы должны быть очень осторожны, - это проводить аудит вашего PHP, чтобы предотвратить атаки SQL-инъекций на вашу базу данных. В PHP об этом легко забыть, поскольку он не очень помогает. Другие языки обычно используют заполнители, что делает этот тип атак практически несущественным.

С помощью подготовленные заявления (с PDO) помогает предотвратить SQL-инъекцию.

Если вы не можете получить доступ к базе данных удаленно, использование надежного пароля для вашего пользователя бесполезно.

Что, если кто-то получит доступ к самому серверу базы данных? Если вы используете надежный пароль, он / она должен стать пользователем root, чтобы иметь неограниченный доступ к данным, которые хранятся в базах данных, если сервер настроен разумно.