Skip to content

Что такое PKCE

Коротко:

PKCE (Proof Key for Code Exchange, RFC 7636) — расширение OAuth 2.0, защищающее authorization code от кражи в public clients (SPA, mobile apps без secure storage). Клиент генерирует random code_verifier → отправляет hash (code_challenge) в authorize URL → при обмене code на token отправляет обратно original verifier. Без PKCE attacker, перехвативший code, может получить access_token.

Ниже: подробности, пример, смежные термины, FAQ.

Подробности

  • code_verifier: random 43-128 chars string (unique per auth attempt)
  • code_challenge: base64url(sha256(code_verifier))
  • code_challenge_method: S256 (only supported)
  • Authorize URL: добавляет code_challenge + method
  • Token exchange: отправляет code_verifier вместо client_secret

Пример

code_verifier = base64url(random(32))   // "dBjftJeZ..."
code_challenge = base64url(sha256(code_verifier))
auth_url = authorize?client_id=X&code_challenge=CC&code_challenge_method=S256

Смежные термины

ЗаголовкиCSP, HSTS, X-Frame-Options и др.
SSL/TLSШифрование и сертификат
КонфигурацияСерверные настройки и утечки
Оценка A-FОбщий балл безопасности

Почему нам доверяют

OWASP
рекомендации
15+
заголовков безопасности
<2с
результат
A–F
оценка безопасности

Как это работает

1

Введите URL сайта

2

Анализ заголовков безопасности

3

Получите оценку A–F

Что проверяет анализ безопасности?

Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.

Анализ заголовков

Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.

Проверка SSL

Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.

Обнаружение утечек

Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.

Отчёт с рекомендациями

Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.

Кому это нужно

Специалисты по безопасности

аудит HTTP-заголовков

DevOps

проверка конфигурации

Разработчики

CSP и HSTS настройка

Аудиторы

соответствие стандартам

Частые ошибки

Нет Content-Security-PolicyCSP — главная защита от XSS. Без него инъекция скриптов значительно проще.
Нет заголовка HSTSБез HSTS возможна downgrade-атака с HTTPS на HTTP. Включите Strict-Transport-Security.
Server header раскрывает версиюServer: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.
X-Frame-Options не установленСайт можно встроить в iframe для clickjacking-атаки. Установите DENY или SAMEORIGIN.
Нет X-Content-Type-OptionsБез nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).

Лучшие практики

Начните с базовых заголовковМинимум: HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy. Займёт 5 минут.
Внедрите CSP постепенноНачните с Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.
Скройте серверные заголовкиУдалите Server, X-Powered-By, X-AspNet-Version из ответов.
Настройте Permissions-PolicyОграничьте доступ к камере, микрофону, геолокации — только то, что реально используется.
Проверяйте после каждого деплояЗаголовки безопасности могут быть перезаписаны при обновлении конфигурации сервера.

Получите больше с бесплатным аккаунтом

История security-проверок и мониторинг HTTP-заголовков безопасности.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Нужен ли PKCE для confidential clients (server-side)?

Рекомендуется (OAuth 2.1 draft), но не обязателен. Для public clients (SPA, mobile) — mandatory.

Поддерживают ли все providers?

Все major: Google, GitHub, Microsoft, Auth0, Okta, Keycloak. Yandex OAuth — с 2022.

Plain vs S256 method?

Только S256 (SHA-256) в production. Plain (verifier=challenge) legacy и небезопасный.