@CrazyMode

Как обеспечить безопасность хранения ключа API?

Делаю сайт - личный кабинет.
Работает через апи.
Собственно на сайте хранится ключ, когда делается запрос через curl, через гет или пост, подхватывается ключ, стыкуется со строкой параметров, кодируется md5 и как заголовок отправляется на сервер.
Собственно я полный профан, и пока сделал вот что:
файл db.php с параметрами соединения лежит в папке с .htaccess в котором deny from all.
Доступа к файлу нет. Только если сам сервер спрашивает.
При этом сам ключ не хранится в db.php, ключ находится за пределами папки html. тобишь за пределами поля запроса. Ведь нельзя обратится по такому адресу localhost/../secret/secret.php где ../ это переход на уровень выше, как в файловой системе.
Или можно?
В общем советы для нуба, по защите ключа.
  • Вопрос задан
  • 1397 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Обращаться к файлам на уровень выше обычно можно, и так и делают: папка проекта и в неё подпапка, корень веб сайта:
/var/www/Project/
  .secret_data.php
  public_html/
    index.php  <-- отсюда подключается "../.secret_data.php"


И параметры доступа к БД и ключи API стоит хранить в таком месте. Ещё часто их значения подгружают в массив окружения $_ENV и $_SERVER при выполнении, и оттуда берут при необходимости. Грубо пример .secret_data.php:
$params = array(
  'API_KEY' => '3pyWtP7KYVheJWkftdchJLWhwUcK8Rdw',
  'DB_HOST' => '127.0.0.1',
  'DB_USER' => 'root',
  'DB_PASS' => 'secret',
);
$_ENV = array_merge( $_ENV, $params);
$_SERVER = array_merge( $_SERVER, $params);


Распространённое решение – использовать пакет vlucas/phpdotenv, который загружает «секретные» данные из файла .env
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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