Администраторы CRUD: Почему бы не использовать пользователей MySQL для аутентификации / acl вместо таблиц пользователей / групп? - PullRequest
2 голосов
/ 09 февраля 2010

В нескольких средах (symfony / Django) у вас есть генераторы администратора, которые обычно управляют доступом через таблицу User (которая назначает пользователя указанной таблице Group).

Мне любопытно, почему бы просто не использовать вместо этого реальных пользователей MySQL (с уже запеченным доступом для выбора / чтения / записи)?

Ответы [ 3 ]

1 голос
/ 09 февраля 2010

Еще одна веская причина, которая не была указана в списке, заключается в том, что имена пользователей и пароли MySQL хранятся в виде открытого текста в файлах конфигурации. Возможно, в вашем коде есть уязвимость, которая позволяет пользователю читать текстовый файл, который затем предоставит немедленный доступ хакеру без необходимости взлома хэша пароля. Удаленная доступность вашей базы данных представляет собой серьезную угрозу безопасности и запрещена PCI-DSS.

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

1 голос
/ 09 февраля 2010

Я бы предположил, что одной из причин будет то, что многие интернет-провайдеры предоставляют вам только одну учетную запись пользователя (без дополнительных затрат) для вашей базы данных mysql, и, таким образом, такой подход не будет работать, поскольку у всех будут одинаковые привилегии.

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

0 голосов
/ 09 февраля 2010

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

...