#php #nginx #persistent-storage
#php #nginx #постоянное хранилище
Вопрос:
У меня есть ключ API, который необходимо вызвать из определенного файла, и поскольку я не хочу хранить ключ API в исходном коде, я решил зашифровать ключ API с помощью PBKDF2 и расшифровать файл один раз с помощью моего пароля, чтобы получить мой ключ API при каждом запуске или перезапуске моего сервера.
Однако я не смог найти способ сохранить ключ API как постоянную переменную, где мне нужно только активировать PHP-файл, который извлекает ключ API один раз. Попробовав include, require_once и global в php. Я также не мог использовать какие-либо файлы или базу данных для хранения полученного ключа API, поскольку это сделало бы то, что я сделал, бессмысленным.
Есть ли какой-либо способ сохранить ключ API в виде переменной, где я могу вызвать его, скажем, с помощью моего API.php всякий раз, когда пользователям необходимо использовать API на моем веб-сайте без использования каких-либо баз данных и файлов?
Я также использую nginx в качестве своего сервера.
Спасибо!
Комментарии:
1. Я думаю, вы могли бы использовать переменные среды, используя getenv на php, для извлечения значения. Я знаю, что это отлично работает с Apache, вы должны проверить на nginx, как их настроить
2. Сохранение этого ключа в конфигурации nginx для вас тоже не вариант?
3. Я отвечал, но есть много лучших ресурсов по этому поводу. Смотрите этот вопрос: security.stackexchange.com/questions/199248 /…
4. Мне удалось использовать переменные среды для хранения. Но, похоже, как только мой сеанс заканчивается, как в моем ssh на сервере, переменная тоже очищается. Я обнаружил, что вы действительно можете сохранить ее внутри ~/.bash_profile , но при этом все равно сохраняется информация о переменной. Есть ли альтернативный метод? Спасибо за всю помощь!
5. Ну, вам все равно нужно где-то хранить этот ключ, верно? Если вы не хотите хранить ее на своем сервере nginx, независимо от того, будет ли она храниться в коде PHP, базе данных, конфигурации nginx и т. Д., Единственный способ, который я вижу, — это сохранить ее на каком-либо другом сервере, которому вы доверяете, и получить этот ключ через удаленный HTTP-вызов, разрешающий доступ только для вашего первого IP-адреса сервера.