Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Last active January 18, 2026 19:48
Show Gist options
  • Select an option

  • Save sunmeat/3349e05ac6cabe60cf660d49c473d384 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/3349e05ac6cabe60cf660d49c473d384 to your computer and use it in GitHub Desktop.
secure-by-default чеклист для ASP.NET Core

🔐 Secure-by-Default Checklist для ASP.NET Core

Повний чекліст для проєктів, які мають бути захищеними з коробки.

Категорія Рекомендації Чому це важливо
1 HTTP/HTTPS - Вимагати HTTPS: app.UseHttpsRedirection() + HSTS в production Захист від Man-in-the-Middle атак, перехоплення даних
2 Аутентифікація & Авторизація - Використовувати ASP.NET Core Identity / OAuth2 / OpenID Connect
- Рольова + політика: [Authorize(Policy = "...")]
- MFA для критичних дій
- Для API: JWT з правильним aud, iss, коротким lifetime
Запобігання несанкціонованому доступу
3 Валідація та кодування - Валідація всіх вхідних даних (моделі, параметри, заголовки)
- Атрибути: [Required], [Range], [RegularExpression]
- Контекстне кодування виводу (XSS-захист)
Запобігання ін'єкціям (SQLi, XSS, Command Injection)
4 CSRF & CORS - Anti-forgery tokens для форм та cookie-auth
- CORS: НЕ AllowAnyOrigin + AllowCredentials
Захист від CSRF-атак та витоку даних
5 Cookies & Сесії - Secure = true
- HttpOnly = true
- SameSite = Strict або Lax
Запобігання крадіжці cookie через JS або cross-site
6 Обробка помилок & Логування - Не виводити стек-трейси у відповідь
- Логувати аномалії, але без секретів
Запобігання витоку інформації про сервер
7 Захист даних & Криптографія - Шифрування чутливих даних
- Хешування: bcrypt / Argon2 (не MD5/SHA1)
- Ротація ключів, secrets management (vault)
Захист даних від компрометації
8 Конфігурація & Middleware - Правильний порядок: UseRouting → UseAuthentication → UseAuthorization
- Без UseDeveloperExceptionPage() в production
- Вимкнути зайві middleware
Зменшення поверхні атаки
9 Залежності & Пакети - Регулярно сканувати та оновлювати NuGet
- Використовувати Dependabot / Snyk
Запобігання відомим вразливостям
10 Моніторинг & Rate Limiting - Увімкнути Microsoft.AspNetCore.RateLimiting Захист від DoS, brute-force, раннє виявлення атак
11 SSRF & Зовнішні запити - Allowlist для зовнішніх URL
- Перевіряти DNS/URL (не довіряти клієнтським вхідним)
Запобігання доступу до внутрішніх ресурсів

Швидкі дії для production

// у Program.cs
app.UseHttpsRedirection();
app.UseHsts(); // тільки production
app.UseExceptionHandler("/Error");
app.UseRateLimiter();
app.UseAuthentication();
app.UseAuthorization();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment