Подтвердить что ты не робот

Защита ресурсов изображения с помощью токенов-маркеров OAuth2

Я создал несколько веб-сервисов, которые производят/потребляют данные JSON, и я защитил их, используя OAuth2 и Toker Tokens, который отлично работает.

Теперь, однако, мне нужно создать аналогичную веб-службу, которая создает изображения, а не JSON (поэтому данные JPEG/PNG). Для согласованности я также хотел бы защитить службу с помощью токенов OAuth2/Bearer, но это сделало бы услугу более сложной для использования в приложениях на основе браузера, которые хотят отображать данные изображения, используя <img> тег, поскольку <img> тег не отправит необходимый HTTP-заголовок Authorization: Bearer ...bearer-token....

Я вижу два пути вокруг этого:

  • Клиенты на основе браузера Службы будут использовать XHR Level2 и схемы URL Blob и Blob из HTML5 для извлечения данных изображения в виде Blob, используйте схему URL-адреса Blob для создания URL-адреса для Blob, а затем динамически создавайте тег img, который ссылается на Blob URl. Много работы просто для отображения изображения!

  • Измените инфраструктуру OAuth2 для создания Http файла cookie в дополнение к Token Token. Измените авторизацию службы, чтобы принять ее как удостоверение: несущий... OAuth2 или файл cookie как подтверждение личности. Cookie имеет такую ​​же продолжительность жизни, как токен-носитель, httpOnly и т.д. Клиенты на основе браузера могут просто полагаться на поддержку файлов cookie браузера, чтобы получить доступ к сервису, могут передавать данные изображения через <img> как обычно. Простота использования для браузеров, но нестандартная. Профиль риска безопасности кажется одинаковым для токена-носителя или файла cookie.

Могу ли я игнорировать любые проблемы безопасности с последним подходом?

Существуют ли альтернативные подходы для защиты ресурсов изображения/мультимедиа с помощью OAuth2?

4b9b3361

Ответ 1

Я предполагаю, что вы используете профиль user-agent-based application с точки зрения получения токена-носителя в базовом приложении браузера.

Спецификация Token Bearer Token поддерживает отправку токена в качестве параметра запроса ?access_token=mF_9.B5f-4.1JqM. Javascript в вашем браузере может добавить токен в качестве параметра запроса к вашим ссылкам img.

Это будет более основано на стандартах, но тогда вам придется беспокоиться о том, что значение access_token будет протекать в журналах и т.д. Я думаю, что компромиссы с безопасностью будут действительно зависеть от объема этих токенов-носителей и насколько важны эти изображения должны защищать.

Я думаю, что открытие инфраструктуры OAuth для приема файлов cookie может открыть вам новые атаки. RFC 6750 специально указывает на риск нападений CSRF.

 Implementations that do store bearer tokens in cookies MUST take precautions
 against cross-site request forgery.