Является ли уязвимостью безопасности установка TWITTER_CONSUMER_KEY / SECRET в клиент для oAuth1 входа в Twitter? - PullRequest
1 голос
/ 11 февраля 2020

Все клиенты React Native для входа в Twitter, которые я обнаружил, похоже, жестко программируют TWITTER_CONSUMER_KEY и TWITTER_CONSUMER_SECRET в клиентском коде, а не полагаются на сервер для генерации токенов и / или URL-адреса перенаправления Twitter.

  • Это безопасно? (например, не мог ли потребитель затем DOS API с TWITTER_CONSUMER_KEY, из-за чего приложение ограничено в скорости?)
  • Это правильный способ сделать это?
  • Есть ли лучший / более безопасный способ?

Согласно документации в твиттере, кажется, что это НЕ правильный способ сделать это: «В случае, если вы считаете, что ваши ключи API были открыты, вы должны восстановить свой Ключи API, выполнив следующие действия "- Рекомендации по аутентификации

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

Смежные вопросы:

1 Ответ

1 голос
/ 11 февраля 2020

Это уязвимость безопасности

Да.

Ваше приложение может быть ограничено по скорости или помечено как вредоносное ПО / спам и т. Д. c.

Есть ли лучший / более безопасный способ?

В основном только для того, чтобы ваш собственный сайт (oauth2) выполнялся правильно и прокси указывал c запросы от ваших клиентов, после проверки или упрощенный заблокированный API сайта, который затем транслируется в API Twitter.

Почему это, аутентификация только в приложениях Twitter поддерживает OAuth2, обеспечивает безопасное согласованное рукопожатие, а затем запросы, сделанные с использованием токена Bearer. В этом режиме вы можете делать запросы от имени вашего приложения, но без входа в систему. Поэтому нельзя публиковать твиты, просматривать личные учетные записи или читать DM.

Для аутентификации пользователей Twitter поддерживает только OAuth1, и приложение и пользователь проходят аутентификацию, но используют модель, которая предполагает открытый текст http, поэтому можно ' не могу поделиться одним токеном. Каждый отдельный запрос должен быть сделан с использованием ключа / секретного ключа и подписью запроса. Таким образом, нет способа сделать это с клиентом javascript безопасно.

...