Как не создавать|сразу удалять сессии в asp.net для одноразовых соединений от ботов?
Здравствуйте.
В Asp.net по умолчанию для каждого соединения создается|используется сессия, сессия не создается, если она уже есть, а сопоставление запроса с существующей сессией происходит по cookies (есть еще вариант с идентификатором в url, но мы его пока отбросим).
Так вот, возникает проблема: если какой-нибудь робот сканирует сайт и при этом для каждого запроса использует чистый набор кук, то для каждого запроса создается сессия, и по умолчанию хранится в оперативке 20 мин. Таким образом, если робот будет со страшной силой пулять запросы, то сами понимаете, что будет с оперативкой на сервере.
Василий Банников, а как связаны OIDC и серверные сессии? Да и JWT непонятно каким боком тут.
Руслан, у вас сессии как-то используются для неавторизованных пользователей? Если нет - выключите их для анонов. Плюс, нормальных ботов можно вычислить по user-agent и для них тоже сессии деактивировать (ну это если для всех анонов нельзя отключать).
Anton Kuzmichev, если говорить о неавторизованных пользователях, то нет никакого смысла создавать для каждого новую сессию - пусть все данные хранятся на клиенте в куках или в localstorage
Но вообще да, JWT таки не имеет смысла к вопросу, тк речь не об авторизации, так что поправлю свой коммент.
Это аналогично защите от DDOS атак, погугли, есть существующие (платные) решения, но я бы не заморачивался, т.к. самописно эта проблема решается очень уж сложно и стоит посчитать, сколько денег потеряет бизнес за предполагаемое время DDOS-а и сколько стоят готовые решения/свой костыль.