безопасный способ добавить пользователей admin mysql через php - PullRequest
1 голос
/ 13 февраля 2012

Я строю систему php, которая добавляет и удаляет пользователей в MySQL.В настоящее время он настроен следующим образом: - пользователь пытается войти на сайт - ищет имя пользователя и хэш (sha256, соль, пароль) в projectdb.users (который также является учетными данными пользователей mysql) - находит его, а затем использует это имя пользователя ипароль для любых подключений mysql_connect при входе в систему

Поэтому, когда я добавляю пользователя в систему, я добавляю его учетные данные в таблицу и добавляю их как пользователя mysql с минимальными разрешениями только для базы данных projectdb.

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

Вместо того, чтобы фактически добавлять пользователей MySQL в систему, лучшеЖесткий код одного пользователя и прав администратора в файлах php?Есть ли более безопасный способ, чем эти две идеи?

Ответы [ 2 ]

5 голосов
/ 13 февраля 2012

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

Большинство CMS реализует таблицу разрешений, которая позволяет коду PHP проверять,пользователь имеет соответствующие разрешения для выполнения определенного действия.Таким образом, ваш PHP-код может просто проверить, есть ли у вошедшего в систему пользователя полномочия, установленные таблицей разрешений, а затем иметь фактического пользователя-администратора (то есть root), чтобы создать самого пользователя.Он более обходной, но дает немного более точный контроль, создавая дополнительный слой на этой структуре разрешений.

2 голосов
/ 13 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...