Запрещение интерактивного входа в систему для определенных mysql пользователей

Я хочу создать некоторых mysql пользователей для различных веб-сайтов, но запретить интерактивные соединения для них.

Если злой пользователь получает mysql данные для входа в систему веб-сайта, создавание связи с терминала на сервер справедливо простой, но загрузка Сценария PHP к серверу является другим вопросом. Я думаю, что это ограничение не является unneccesary.

Короче говоря, как я могу запретить интерактивную связь для определенного пользователя?

0
задан 8 October 2014 в 15:12
2 ответа

Нельзя. MySQL не может отличить сеанс CLI от соединения с библиотекой, или, по крайней мере, не имеет модели разрешения, чтобы действовать на основе этой разницы.

Как правило, вы должны сделать разрешения как можно более конкретными. Соединение, которое должно быть разрешено с определенного веб-сервера, должно быть ограничено только этим сервером. Это значительно уменьшает поверхность атаки. Также, если возможно, не устанавливайте на этот сервер программу CLI mysql, чтобы еще больше ограничить поверхность атаки.

1
ответ дан 4 December 2019 в 13:55

Обычно вы имеете дело с этим в 1 из двух способов или в обоих, если хотите. Вы устанавливаете место назначения таким образом, чтобы разрешить пользователю подключаться только из ip, диапазона ip или имени хоста, откуда вы хотите, чтобы пользователь подключился к

Так, например,

 GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'127.0.0.0.1';

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

 GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'10.128.10.%';

Что позволит выбирать и вставлять из 10.128.10.0/24

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

1
ответ дан 4 December 2019 в 13:55

Теги

Похожие вопросы