Как улучшить безопасность базы данных mysql - PullRequest
2 голосов
/ 28 января 2010

Я студент, и мы делаем простую информационную систему для больницы. Как мы можем улучшить безопасность базы данных MySQL, чтобы конфиденциальная информация была защищена.

Ответы [ 5 ]

4 голосов
/ 28 января 2010

Всего несколько штук на макушке моей головы ...

  1. Используйте хороший пароль
  2. Разрешить доступ к серверу только из тех мест, откуда он должен быть доступен. например. если к нему должен обращаться только веб-сервер на той же машине, не разрешайте доступ к mysql извне машины.
  3. Дайте каждому человеку, который может получить к нему доступ, свое собственное имя пользователя и пароль, и ограничьте его только теми действиями, которые ему необходимо выполнить. Отключите DROP, DELETE и т. Д. И не разрешайте обычным пользователям изменять базы данных, создавать таблицы, изменять таблицы и т. Д. И т. Д.
  4. Убедитесь, что вы понимаете систему полномочий пользователей, используемую в MySQL. Сначала это кошмар, но он дает вам много контроля, когда вы его получаете.
  5. Не думайте, что это безопасно - это не - независимо от того, что вы сделали, вы всегда можете сделать больше.
3 голосов
/ 28 января 2010

Безопасность - сложная проблема, и трудно ответить на неопределенные вопросы.

Несколько обобщений.

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

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

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

Вы должны предполагать, что кто-то получит доступ к вашей базе данных. Каждый «пользователь» должен иметь только те разрешения, которые необходимы пользователю для выполнения этой работы. Чем меньше каждый пользователь сможет сделать, тем безопаснее вы будете, когда кто-то взломает его. Возможно, вам потребуется создать несколько пользователей, чтобы каждый бит вашего приложения мог выполнять свою работу и только свою работу.

Наконец, вы должны рассмотреть последствия получения доступа к вашей базе данных. Я бы предположил, что медицинские записи требуют чрезвычайно высокого уровня безопасности. Вы можете рассмотреть некоторую форму шифрования / обфускации в самой базе данных, но мне никогда не приходилось делать это самостоятельно, поэтому я не могу комментировать дальше.

2 голосов
/ 09 ноября 2011
  1. используйте хороший пароль
  2. разрешить посетителям только с определенного IP
  3. надежная система паролей, так что даже взломанная, никто не получит ее даже себе

md5('your-password') недостаточно безопасен, попробуйте что-то вроде md5(md5('your-password').'your-password').

1 голос
/ 28 января 2010

Убедитесь, что вы не разрешаете SQL-инъекцию из вашего приложения.

0 голосов
/ 28 января 2010

Запретить соединения со всех IP-адресов, кроме IP-адреса сервера приложений. И убедитесь, что приложение, работающее с БД, не имеет дыр в безопасности. :)

...