Seria pytań uczestników, które pojawiły się podczas szkolenia Bezpieczeństwo usług sieciowych .NET Core realizowanego w dniach 19-20.07.2021 r.
Można utworzyć własny Middleware, który będzie pobierać adres ip i przechowywać w słowniku (Dictionary) ilość zapytań dla danego adresu IP przez określony czas.
1. W oparciu o interfejs IDictionary tworzymy własną implementację słownika, która będzie przechowywać klucz na zadany czas (tzw. TTL)
Kod żródłowy pod tym linkiem.
2. Następnie tworzymy Middleware z użyciem tego słownika:
Kod żródłowy pod tym linkiem.
3. W metodzie Startup.Configuration rejestrujemy middleware:
app.UseMiddleware
Gotowe.
Natomiast jeśli chcemy skorzystać z gotowej biblioteki to polecam tę.
Wystarczy utworzyć własną implementację na podstawie interfejsu IPasswordHasher <T>.
Polecam na przykład zastosowania algorytmu BCrypt.
Przykład implementacji pod tym linkiem.
Proponuję zastosować API Key. W tym celu należy utworzyć implementację bazującą na AuthenticationHandler.
Przykład implementacji pod tym linkiem.