Не храните пароли на своем сайте

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

Решение
Сохраните пароль в переменной окружения в файле, который сервер загружает при старте, а затем просто сошлитесь на нее в сценарии:

mysql_connect('localhost',$_ENV['MYSQL_USER'],$_ENV['MYSQL_PASSWORD']);


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

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

SetEnv MYSQL_USER "susannah"
SetEnv MYSQL_PASSWORD "y23a!t@ce8"


Включите этот отдельный файл в директиву <VirtualHost> вашего сайта в главном файле конфигурации следующим образом:

Include "/usr/local/apache/database-passwords"


Убедитесь, что этот отдельный файл, содержащий пароль (т. е. /usr/local/apache/database-passwords), доступен для чтения только пользователю, управляющему соответствующим виртуальным хостом. СамApache обычно запускается и читает файлы конфигурации как root, поэтому он сможет прочитать включенный файл.
Теги:
защита, шифрование, пароли
Добавлено: 22 Июля 2018 13:47:50 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...