OAuth 2.0 (RFC 6749) — стандарт делегированной авторизации: приложение А получает право действовать от имени пользователя в сервисе Б без передачи пароля. Не путать с аутентификацией — для "войти через Google" используют OpenID Connect поверх OAuth 2.0. Основные flow: Authorization Code (веб), PKCE (mobile/SPA), Client Credentials (сервис-сервис), Device (TV, CLI).
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — сканер безопасности сайта: результат мгновенно, без регистрации.
Authorization: Bearer eyJhbGciOi...OAuth 2.0 — это протокол авторизации, который позволяет сторонним приложениям получать ограниченный доступ к ресурсам пользователя без необходимости передачи пароля. Он работает через несколько типов потоков (flows), таких как Authorization Code, Implicit, Resource Owner Password Credentials и Client Credentials. В отличие от JWT (JSON Web Token), который используется для передачи информации между сторонами, OAuth 2.0 фокусируется на делегировании доступа, что делает его более безопасным для работы с API.
OAuth 2.0 предлагает несколько типов потоков для различных сценариев использования. Основные из них:
Каждый поток имеет свои особенности и предназначен для определенных сценариев. Например, Authorization Code Flow обеспечивает высокий уровень безопасности и подходит для ситуаций, когда требуется длительный доступ к ресурсам.
Для практической демонстрации рассмотрим реализацию Authorization Code Flow с использованием библиотеки oauth2-client на Python. Пример кода:
import requests
# Шаг 1: Перенаправление пользователя на страницу авторизации
authorization_url = 'https://provider.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code'
# Шаг 2: Получение кода после авторизации
# Пользователь будет перенаправлен на YOUR_REDIRECT_URI с параметром 'code'
# Шаг 3: Обмен кода на токен доступа
def get_access_token(code):
token_url = 'https://provider.com/oauth/token'
data = {
'grant_type': 'authorization_code',
'code': code,
'redirect_uri': 'YOUR_REDIRECT_URI',
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET'
}
response = requests.post(token_url, data=data)
return response.json()
Этот код показывает, как происходит процесс авторизации с использованием OAuth 2.0. Теперь, что касается различий между OAuth 2.0 и JWT. OAuth 2.0 — это протокол авторизации, который управляет доступом к ресурсам, тогда как JWT — это формат токена, который может использоваться для передачи информации между сторонами. JWT может быть использован в качестве токена доступа в OAuth 2.0, но сам по себе не обеспечивает механизм авторизации.
Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.
Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.
Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.
Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.
Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.
аудит HTTP-заголовков
проверка конфигурации
CSP и HSTS настройка
соответствие стандартам
Strict-Transport-Security.Server: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.DENY или SAMEORIGIN.nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.Server, X-Powered-By, X-AspNet-Version из ответов.История security-проверок и мониторинг HTTP-заголовков безопасности.
Зарегистрироваться (FREE)OAuth 2.0 — авторизация (что можно). OpenID Connect — слой поверх для аутентификации (кто пользователь) через id_token (JWT).
Нет, с 2019 OAuth 2.1 draft и большинство рекомендаций — deprecated. Замена: Authorization Code + PKCE.
Может быть, но не обязано. OAuth спецификация не требует формата. Многие провайдеры (Google, Auth0) возвращают JWT для удобства клиента.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.