Безопасность
OWASP Top 10, SQL-инъекции, XSS и CSRF, JWT, OAuth2 и OpenID Connect, хранение паролей, TLS, защита чувствительных данных и уязвимые зависимости.
Безопасность — ответственность каждого разработчика, а не отдельной команды. Здесь собраны атаки и механизмы защиты, которые встречаются в каждом веб-сервисе на ASP.NET Core.
- 1 OWASP Top 10 — какие актуальны для .NET приложений? OWASP Top 10 — рейтинг самых критичных рисков веб-приложений (редакция 2021; готовится обновление), основанный на данных реальных уязвимостей. A01 Broken Access Control … Middle7 мин
- 2 SQL Injection, XSS, CSRF — как предотвращать в ASP.NET Core? SQL Injection — пользовательский ввод становится частью SQL-кода. Защита: параметризованные запросы (EF Core LINQ, FromSql($"..."), Dapper-параметры, SqlParameter); нико… Junior7 мин
- 3 JWT: структура, подпись, хранение, refresh токены, отзыв? JWT = header.payload.signature — три части в Base64Url. Header: алгоритм (alg) и тип, ключ (kid). Payload: claims — sub, iss, aud, exp, iat, nbf, jti + свои (role, scope… Middle7 мин
- 4 OAuth 2.0 и OpenID Connect: в чём разница, какие flow использовать? OAuth 2.0 — протокол делегированной авторизации: пользователь разрешает приложению (client) доступ к своим ресурсам на resource server, не передавая пароль. Результат — … Middle8 мин
- 5 Как хранить пароли: BCrypt, Argon2, PBKDF2 — и почему не SHA-256? Пароли не шифруют (шифрование обратимо — утечёт ключ, утекут все пароли), а хэшируют специальной медленной функцией с солью. Соль — уникальная случайная строка для каждо… Middle6 мин
- 6 HTTPS, TLS и сертификаты в .NET: как работает и как настроить? TLS обеспечивает три вещи: конфиденциальность (шифрование), целостность (данные не изменены) и аутентификацию сервера (вы говорите именно с bank.uz). HTTPS = HTTP поверх… Middle6 мин
- 7 Чувствительные данные в логах и ответах API: как не допустить утечки? Чувствительные данные: пароли, токены, API-ключи, строки подключения, номера карт (PCI DSS), паспортные данные, телефоны, email, адреса, медицинские данные — всё, что по… Middle7 мин
- 8 Уязвимые зависимости: как находить и обновлять NuGet-пакеты? Код приложения — это на 80–90% чужой код: NuGet-пакеты и их транзитивные зависимости, базовые Docker-образы, сам .NET runtime. Уязвимость в любом из них — уязвимость при… Middle6 мин