Bezpieczeństwo usług sieciowych .NET Core (lipiec 2021)

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.


W jaki sposób nałożyć limit na ilość zapytań aby obronić się przez atakiem DOS?

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(limit: 10, period: 5000);

Gotowe.

Natomiast jeśli chcemy skorzystać z gotowej biblioteki to polecam .

W jaki sposób zmienić funkcję haszującą hasła w Identity?

Wystarczy utworzyć własną implementację na podstawie interfejsu IPasswordHasher <T>.
Polecam na przykład zastosowania algorytmu BCrypt.

Przykład implementacji pod tym linkiem.

Jakiego mechanizmu autentykacji najlepiej użyć w przypadku komunikacji usługa - usługa?

Proponuję zastosować API Key. W tym celu należy utworzyć implementację bazującą na AuthenticationHandler.

Przykład implementacji pod tym linkiem.