Хранение важных секретных ключей в php файлах

Мы делаем приложение с помощью PHP и с помощью некоторых сторонних сервисов, которые требуют секретного ключа API. У нас есть файл PHP, который содержит все те определения ключей, которые мы тогда импортируем (использующий require_once) при необходимости.

Действительно ли этот подход безопасен? Мы должны сохранить ключи в другом месте?

Спасибо.

10
задан DiogoNeves 22 February 2010 в 14:34
поделиться

3 ответа

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

Мне также нравится unset () после использования любых переменных, содержащих конфиденциальные данные, чтобы даже полный дамп переменной (например, в отладочном сообщении) позже в этом сценарии не мог раскрыть это.

13
ответ дан 3 December 2019 в 20:04
поделиться

Это должно быть относительно безопасно, пока файл недоступен из Интернета. Многие сайты размещают конфиденциальные файлы вне корневого каталога на сервере и просто включают их, когда это необходимо, в свое приложение.

3
ответ дан 3 December 2019 в 20:04
поделиться

Я всегда устанавливаю разрешения для сертификатов и других файлов, содержащих конфиденциальные данные, так что только моя команда разработчиков и служба apache могут получить доступ к файлу. Это важно, если вы используете сервер, совместно используемый большой организацией, например университетом, где у многих людей по умолчанию могут быть разрешения на доступ к файлу. Часто я видел разрешения на чтение, предоставляемые всем, чтобы веб-сервер мог получить доступ к файлу (поскольку он не является ни владельцем, ни правами группы для файла, единственное, что остается, - это дать чтение «другим»).

Вместо этого я проверяю наличие группы, состоящей только из моей команды разработчиков, и устанавливаю для этой группы права чтения / записи для файла. Затем я использую ACL, чтобы добавить разрешение на чтение для службы APACHE. Вы должны использовать ACL, поскольку владелец и группа обычно устанавливаются как группа разработчиков и группы разработчиков, что не оставляет вам никаких вариантов для настройки доступа для apache, кроме использования ACL.

3
ответ дан 3 December 2019 в 20:04
поделиться
Другие вопросы по тегам:

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