Безопасность в ASP.NET Core. Управление секретами пользователей

Когда мы разрабатываем какой-либо пет-проект в ASP.NET Core, то особо не задумываемся над тем как мы сохраняем конфиденциальные данные, которые могут нам требоваться при разработке — секретные ключи API, пароли доступа к БД и т.д. Обычно, всё это «богатство» записывается в конфигурацию приложения, например в appsettings.json и используется в разработке. Проблемы начинаются, когда мы отправляем исходный код приложения в какой-нибудь публичный репозиторий или просто выкладываем zip-архив с исходниками на какой-нибудь площадке. В этом случае все наши секреты могут легко перестать быть такими уж секретными. Или второй вариант — несколько разработчиков работают над проектом — у каждого свой набор секретных данных. Как сделать так, чтобы один разработчик не использовал секреты другого? Можно, конечно, обходится старыми способами — постоянно удалять из конфигурации секретные данные и потом передавать исходный код другим, а можно использовать возможности Visual Studio и использовать в проекте управление секретами пользователей.

Читать далее

Сжатие ответов в ASP.NET Core. Настройки сжатия

В предыдущей части мы познакомились с ещё одной возможностью ASP.NET Core — сжатием ответов. В этой части мы более подробно разберемся с тем, какие настройки мы можем использовать в сервисах сжатия ответов и как эти настройки могут повлиять на производительность приложения ASP.NET Core.

Читать далее

Сжатие ответов в ASP.NET Core. Введение

Любое современное более менее серьезное веб-приложение помимо непосредственно данных может отсылать клиенты в ответе различные ресурсы — файлы со скриптами, CSS, картинки и т.д. Все эти элементы нагружают ответ лишними байтами/килобайтами, а, иногда и мегабайтами данных, что может негативно сказаться на производительности приложения. Для повышения производительности нашего приложения, помимо кэширования объектов и статических файлов, мы можем также использовать сжатие ответа сервера, что позволяет снизить объем передаваемых данных по Сети. Следует сразу отметить, что рассмотренные ниже примеры будут показывать хороший результат только для серверов Kestrel и Http.sys так как здесь по умолчанию отключено сжатие ответа. На IIS вы, скорее всего, ничего не заметите, так как здесь уже включено сжатие по умолчанию.

Читать далее

Кэширование в ASP.NET Core. Распределенное кэширование (IDistributedCache)

Распределенное кэширование (Distributed Cache) удобно использовать в том случае, если нужен общий кэш для нескольких машин. Распределенный кэш хранится в какой-либо внешней службе и, если один сервер сохранил элемент кэша, то другие серверы могут его использовать. Например, в ASP.NET Core для распределенного кэша может использоваться такой сервис, как Redis.

Читать далее

Кэширование в ASP.NET Core. Кэширование вывода (IOutputCacheStore)

В ASP.NET Core предусмотрено кэширование ответов приложения для чего используется сервис IOutputCacheStore и компонент middleware OutputCacheMiddleware. Рассмотрим, как мы можем использовать кэширование вывода в своих приложениях.

Читать далее

Кэширование в ASP.NET Core. Кэширование статических файлов

Кроме кэширования результатов каких-либо действий нашего приложения также немаловажным элементом практически любого веб-приложения является кэширование статических файлов, например, js-скриптов, картинок/иконок и т.д., то есть таких элементов, которые могут вообще никогда не изменяться или изменяться крайне редко, но которые могут достаточно часто загружаться вместе со страницами веб-приложений. Рассмотрим моменты кэширования статических файлов в ASP.NET Core

Читать далее

Кэширование в ASP.NET Core. Настройки кэширования в памяти

В предыдущей части мы познакомились с использованием кэша в памяти и написали небольшое тестовое приложение, демонстрирующее кэширование в ASP.NET Core. Теперь разберемся с тем, какие методы IMemoryCache мы можем использовать для управления кэшем, а также настройки кэширования.

Читать далее

Кэширование в ASP.NET Core. IMemoryCache

Кэширование — это относительно простая и, в тоже время, эффективная концепция в программировании, идея которой состоит в том, чтобы повторно использовать данные, не прибегая к выполнению повторных дорогостоящих операций. В ASP.NET Core предусмотрены различные механизмы кэширования данных.

Читать далее

CORS и кросс-доменные запросы в ASP.NET Core. Политики CORS, глобальная и локальная настройка CORS

Политики содержат набор правил для конфигурирования CORS в вашем приложении ASP.NET Core. Политики CORS позволяют в дальнейшем упростить настройку вашего приложения и, при необходимости, задействовать различные наборы правил для различных сред окружения.

Читать далее

CORS и кросс-доменные запросы в ASP.NET Core. Конфигурация CORS

В предыдущей части мы познакомились с технологией CORS и использовали её в нашем приложении ASP.NET Core для того, чтобы позволить другому приложению получать доступ к ресурсам. В этой части мы более детально рассмотрим CORS и то, как можно конфигурировать работу CORS в ASP.NET Core.

Читать далее