Хранение пароля mysql в файле конфигурации apache с помощью SetEnv - PullRequest
0 голосов
/ 20 июля 2010

В настоящее время мы храним пароли mysql в application.ini.

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

Я думал о том, чтобы сохранить его в переменной окружения конфигурации apache.

Это достаточно безопасно?

Ответы [ 2 ]

3 голосов
/ 21 июля 2010

Примите во внимание следующее в мошенническом скрипте, когда файл конфигурации доступен для чтения Apache:

<?php

echo file_get_contents('/path/to/config');

Защита файла для доступа только с правами root:

chmod 600 /path/to/config && chown root:root /path/to/config

Теперь вы можете использовать SetEnv, не позволяя дочерним процессам apache читать файл. Во время начальной загрузки установите соединение с БД, а затем удалите переменные сервера, чтобы что-то вроде var_dump($_SERVER) не показывало значения.

Ограничение по IP-адресу для дальнейшего препятствования атаке и до тех пор, пока злоумышленник не получит доступ через IP-адрес и не узнает содержимое файла конфигурации, тогда вы должны быть в порядке.

2 голосов
/ 20 июля 2010

Просто убедитесь, что файл конфигурации apache не доступен для чтения любому другому пользователю, кроме apache.

Но сохранение пароля не является основной мерой предосторожности, поскольку вы также можете запретить подключение к вашему серверу MySQL извне или ограничить его определенными IP-адресами.

...