Как организовать доступ к непубличным токенам?

Ссылка скопирована
1 ответ

Пробую сделать пет, в нем данные получаются по АПИ с использованием токена. Токен непубличный, поэтому храню в .env. Вопрос - как, если он не залетит на гитхаб, мое приложение сможет использовать другой юзер, его склонировав?

Дополнительно:

Ответы:

В репозитории хранится .env.example, содержащий заглушки ключей и комментарии с инструкциями для их получения. После клонирования он переименовывается и заполняется.

  • А, ну, то есть, это так и работает. Что если кто-то моим приложением захочет воспользоваться, он должен будет где-то найти этот токен. Я просто думал, что вдруг можно как-то его залить в репозиторий, но при этом его нельзя было в открытую прочитать, чтобы, условно, на другом компе склонировал и у меня уже этот токен имеется
  • SKornya, это называется использование приватного репозитория.

Это тебе не хогвартс, а просто гит.

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

1. НИКОГДА не храните секреты (токены, логи-пассы и т.д.) в коде, который сохраняете в Git. Даже для пет-проектов. Даже если вы потом удалите этот токен из файла, он навсегда сохранится в истории гита, потом вы про это забудете, поделитесь кодом с кем-то, и он найдёт этот токен в истории. Вопрос не в том, найдет ли пользователь этот токен или нет, вопрос только в том, когда он найдёт этот токен. Очень-очень-очень многие просто забывают о том, что когда-то коммитили токен в репозиторий, забывают вычистить историю, и этот токен утекает...

2. Код и секреты - это отдельные сущности, и жить они должны в разных местах. Если хотите поделиться кодом, обязательно опишите в README процесс получения токена, чтобы пользователи смогли хоть как-то этим кодом пользоваться. Это хороший тон в open-source.

3. Если вы будете пользоваться системами CI/CD от Github или Gitlab, то там у репозиториев есть специальные разделы, в которых можно безопасно хранить секреты. Но вы должны быть внимательными, если сделаете кого-нибудь контрибьютером в вашем проекте. Не забудьте проверить все разрешения, которые выдаёте этим людям, потому что они при деплое проекта через эти системы CI/CD смогут вычитать ваши секреты. Если вы один хозяин репозитория, то хранить секреты там вполне безопасно.

4. Если же вам всё-таки по какой-то причине очень надо, чтобы пользователи всё же как-то работали с вашим токеном, то единственное, что мне приходит в голову - это написать приложение типа API Gateway, которое будет имитировать ту апиху, от которой ваш токен. И это ваше приложение будет иметь базу данных пользователей которые смогут в вашем приложении регистрироваться и получать уже ваши токены, вами сгенерированные, для доступа к вашей апихе, а ваша апиха будет внутри себя вытаскивать данные из оригинальной API по оригинальному токену и отдавать эти данные им.

да блин, элементарно же - не пушай в репо.
есть 100500 способов это сделать.

  • Так не в этом вопрос был. Я скорее всего не очень понимаю механики всей, другой пользователь склонирует реп, сбилдит, запустит - а как он будет им пользоваться, если для запросов нужен токен, которого нет в доступе?
  • SKornya, получить свой и прописать где надо.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ольга Сеть Ответ

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

1. Используйте переменные среды: рекомендуется хранить непубличные токены в переменных среды вашего приложения. Это позволит избежать случайного раскрытия токенов в репозитории кода или логах.

$token = getenv('SECRET_TOKEN');

$token = getenv('SECRET_TOKEN');

2. Используйте файл конфигурации: создайте файл конфигурации, в котором будут храниться непубличные токены. Убедитесь, что этот файл находится вне публичной директории вашего сервера.

$config = include('config.php');
$token = $config['secret_token'];

$config = include('config.php'); $token = $config['secret_token'];

3. Используйте .htaccess или Nginx конфигурацию: вы можете настроить ваш веб-сервер таким образом, чтобы запретить доступ к файлам с непубличными токенами из браузера.

4. Шифруйте токены: при необходимости, можно использовать шифрование для защиты непубличных токенов. Например, можно использовать OpenSSL для шифрования и дешифрования токенов.

5. Ограничьте доступ: если у вас есть несколько уровней доступа к токенам, убедитесь, что только определенные пользователи или сервисы имеют доступ к ним.

6. Периодически меняйте токены: для увеличения безопасности, рекомендуется периодически менять непубличные токены. Это может быть особенно важно в случае утечки токена.

Следуя этим советам, вы сможете организовать безопасный доступ к непубличным токенам и предотвратить возможные угрозы безопасности.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно