Это ответ на озабоченность по поводу токенов доступа, возникшую при взаимодействии с конечной точкой Oauth2 Spotify.
Посмотрите это видео здесь:
Да, любой, кто загрузит ваше расширение Chrome, сможет увидеть ВЕСЬ код, который вы написали.
Это подводит нас к главной проблеме, которая заключается в том,
«Неужели тогда люди не смогут использовать токены доступа или даже идентификатор клиента, представленный в вашем коде?»»
Короткий ответ: «Да» на оба вопроса.
Давайте разберемся с токеном доступа.
Маркер доступа не даст вам или кому-либо доступ к действительно конфиденциальной информации о пользователе.
Никаких паролей.
Нет данных кредитной карты.
Маркер доступа будет предоставлять только информацию и разрешать изменение информации, запрашиваемой вами в параметре SCOPES запроса OAuth2.
Токен доступа можно сохранить в ОЗУ (как переменную) или в локальном хранилище для более постоянного решения.
Однако для того, чтобы токен доступа вообще циркулировал в вашем приложении, сначала должен быть токен доступа.
Чтобы сначала был токен доступа, кто-то должен сначала войти в систему с ДЕЙСТВИТЕЛЬНЫМИ УЧЕТНЫМИ УЧЕТНЫМИ ПРАВАМИ.
Итак, каждый, кто загружает ваше расширение Chrome и проверяет ваш код, сталкивается с тремя сценариями:
1. Пользователь входит в систему, используя ИХ учетные данные, что в данном случае означает, что он «ВЛАДЕТ» токеном; они могут получить к нему доступ, если захотят.
2. Пользователь входит в систему с ЧУЖИМИучетными данными, для которых у него ДЕЙСТВИТЕЛЬНО есть РАЗРЕШЕНИЕ, что в данном случае означает, что он «ВЛАДЕЕТ» токеном; они могут получить к нему доступ, если захотят.
3. ГЛАВНАЯ ПРОБЛЕМА — пользователь входит в систему с действительными учетными данными, а кто-то другой получает доступ БЕЗ РАЗРЕШЕНИЯ к расширению
Chrome — в цифровом или физическом виде. — и поэтому может получить доступ к токену пользователя; это не наша проблема.
В какой-то момент ответственность за учетные данные передается пользователю.
Наше приложение не хранит пароли пользователей и ничего, что могло бы привести к серьезной утечке данных.
Кроме того, срок действия маркеров доступа Spotify истекает через 60 минут, а наше расширение Chrome «дампы» токен каждые 60 минут.
У нас есть простой токен доступа с возможностью получения и изменения важной пользовательской информации, да, но ничего слишком компрометирующего.
Я должен повторить, мы получаем токен доступа только в том случае, если пользователь успешно входит в систему.
Они должны обеспечить безопасность своих учетных данных.
Если у них нет брандмауэра, это на них.
Если у них не установлено антишпионское/вредоносное ПО, это на них.
Если они входят в систему, отходят от своего ПК, и кто-то физически управляет их ПК, чтобы посмотреть код расширения, пока их нет, это на них.
Давайте займемся идентификатором клиента.
Это просто.
Люди могут использовать ваш идентификатор клиента для выполнения запросов к API Spotify. Они могут даже спамить это.
Однако у Spotify есть «ограничение скорости». Поэтому, если ваш идентификатор клиента делает слишком много запросов к Spotify за определенный период, для вашего приложения устанавливается «тайм-аут» на «x» секунд.
Я надеюсь, что это развеет опасения по поводу того, что люди, которые загружают ваше расширение Chrome, могут видеть исходный код.
Если у вас есть лучший способ работы с токенами доступа (не JWT) в
расширениях Chrome, не стесняйтесь обращаться ко мне в Twitter, Instagram или по электронной почте.