Security

JWT, OAuth 2.0/OIDC, CORS/CSP, TLS/SSL, OWASP Top 10

JWT (JSON Web Token)

Справочный блок 1

Структура

Код
header.payload.signature

Header

Код
{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

Код
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Использование

Код
Authorization: Bearer <token>

OAuth 2.0

Справочный блок 2

Authorization Code Flow

Самый безопасный для веб-приложений

Client Credentials

Для сервер-к-сервер

Implicit Flow

Устаревший, не рекомендуется

Refresh Token

Обновление access token

CORS (Cross-Origin Resource Sharing)

Справочный блок 3

Разрешить все

Код
Access-Control-Allow-Origin: *

Разрешить конкретный домен

Код
Access-Control-Allow-Origin: https://example.com

Разрешить методы

Код
Access-Control-Allow-Methods: GET, POST, PUT

Разрешить заголовки

Код
Access-Control-Allow-Headers: Content-Type, Authorization

Разрешить credentials

Код
Access-Control-Allow-Credentials: true

CSP (Content Security Policy)

Справочный блок 4

Базовый

Код
Content-Security-Policy: default-src 'self'

С разрешенными источниками

Код
Content-Security-Policy: script-src 'self' https://cdn.example.com

Без inline скриптов

Код
Content-Security-Policy: script-src 'self'; object-src 'none'

TLS/SSL

Справочный блок 5

Проверка сертификата

Код
openssl s_client -connect example.com:443

Просмотр сертификата

Код
openssl x509 -in cert.pem -text -noout

OWASP Top 10

Справочный блок 6

A01: Broken Access Control

Нарушение контроля доступа

A02: Cryptographic Failures

Ошибки криптографии

A03: Injection

SQL, NoSQL, Command injection

A04: Insecure Design

Небезопасный дизайн

A05: Security Misconfiguration

Неправильная конфигурация

A06: Vulnerable Components

Уязвимые компоненты

A07: Authentication Failures

Ошибки аутентификации

A08: Software and Data Integrity

Целостность ПО и данных

A09: Security Logging Failures

Ошибки логирования

A10: Server-Side Request Forgery

SSRF атаки