Sobes.tech
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
}