сохранить имя пользователя и пароль моего sql нечитаемыми администратором

#php #security

#php #Безопасность

Вопрос:

У меня есть файл setup.php .
Этот файл содержит имя пользователя и пароль mysql. Есть ли какой-либо способ сделать его нечитаемым или зашифровать его так, чтобы даже администратор не мог его прочитать или мог прочитать, но все еще не знал пароль?

Комментарии:

1. Вы хотите зашифровать (запутать?) файл setup.php или хотите зашифровать имя пользователя также, помимо пароля, в вашем MySQL?

2. это невозможно сделать. запутывание — пустая трата времени

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

4. @etbal это пустая трата времени, поскольку any техника запутывания небезопасна или ее трудно отменить.

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

Ответ №1:

Короткий ответ заключается в том, что для практических целей вы можете затруднить им доступ к нему, но не сделать это невозможным.

Если у кого-то есть полный доступ к файловой системе сервера (например, с правами root), то они могут считывать любые данные из этой файловой системы, поэтому они могут читать код и любые файлы данных, которые вы размещаете там. Поскольку приложение, запущенное на этом хосте, должно иметь возможность использовать учетные данные, нет эффективного способа помешать кому-либо с полным доступом к этому серверу прочитать их.

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

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

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

Кроме того, есть сайт stackexchange по адресу security.stackexchange.com это хорошее место для подобных вопросов.

Ответ №2:

Создайте нового пользователя в MySQL и предоставьте некоторые базовые разрешения для этого пользователя. Тогда у вас будет два пользователя, ваша учетная запись администратора и учетная запись пользователя с ограниченными привилегиями.

Вы также можете запретить просмотр папки, в которой находится ваш setup.php находится, выполняя тот же трюк, создайте другого пользователя в вашей ОС, чтобы ограничить ограничения для этой папки