Во-первых, чтобы объяснить, у нас есть несколько сайтов, которые все подключаются к центральной базе данных. Как правило, мы не предоставляем клиентам доступ к FTP для своего веб-сайта, поэтому они не могут получить доступ к файлам с учетными данными БД в них. 99,9% времени это нормально.Шифрование учетных данных базы данных
Однако у нас есть клиент, настаивающий на том, что у них есть полный доступ к FTP. Они хотят добавить материал для рекламы/отслеживания, и я установил их собственную базу данных и заблокировал FTP в другом каталоге, но это, по-видимому, недостаточно хорошо.
Теперь я уверен, что они не собираются украсть наши учетные данные mysql и подключить и уничтожить наши БД, но, без сомнения, вы согласитесь на его огромный риск для безопасности.
Есть ли способ:
а) подключаться к базе данных без их видеть учетные данные в коде
б) остановить их от добавления своего кода и подключения к центральной базе данных, только их собственный
Довольно уверен, что ничего не будет на 100% безопасным, поскольку предоставление им доступа к FTP означает, что они могут делать то же самое, что и я, но интересно, есть ли у кого-нибудь идеи?
Да, зарядите их немного больше, скажем 1000 в год и более, и позвольте им взорвать свою собственную коробку. – Drew
Прежде чем говорить о шифровании, я предлагаю вам использовать конкретного пользователя для подключения к вашей базе данных из вашего сценария , Этот пользователь должен иметь ограниченные права (конечно же, вставлять и обновлять и, возможно, не намного больше). И когда вы говорите о центральной базе данных, вы имеете в виду, что кто-то, имеющий доступ к базе данных, может получить доступ к другим данным пользователей? –
Простой ответ заключается в том, что вам нужен посредник между кодом, к которому у них есть доступ, и к процессам, к которым вы хотите запретить доступ. Затем этот посредник может выполнять любые проверки, которые вы сочтете уместными, будь то проверка кодовой базы, с которой она взаимодействует, или просто ограничение операций, которые могут быть выполнены. Если последний, вы просто создали API, через который выполняется вся деятельность базы данных; в простых приложениях я создал такой API в самой базе данных, используя учетные данные учетной записи MySQL и хранимые процедуры. – eggyal