Junior — Middle
W jaki sposób można chronić API przed nieautoryzowanym dostępem i atakami?
sobes.tech AI
Odpowiedź od AI
Aby chronić API przed nieautoryzowanym dostępem i atakami, stosuje się następujące metody:
- Uwierzytelnianie i autoryzacja: Użycie tokenów (JWT, OAuth), kluczy API, Basic Auth do sprawdzania uprawnień użytkownika.
- Szyfrowanie: Przesyłanie danych przez HTTPS w celu ochrony przed przechwyceniem.
- Ograniczenie liczby żądań (Rate Limiting): Zapobieganie atakom DDoS i nadużyciom.
- Walidacja i filtrowanie danych wejściowych: Ochrona przed wstrzyknięciami SQL, XSS i innymi atakami.
- Rejestrowanie i monitorowanie: Śledzenie podejrzanej aktywności.
- Użycie CORS: Kontrola dostępu z różnych domen.
- Ochrona przed CSRF: Użycie tokenów lub innych mechanizmów.
Przykład najprostszej autoryzacji z użyciem klucza API w Go:
func apiHandler(w http.ResponseWriter, r *http.Request) {
apiKey := r.Header.Get("X-API-Key")
if apiKey != "expected_api_key" {
http.Error(w, "Unauthorized", http.StatusUnauthorized)
return
}
// Obsługa żądania
}