Sobes.tech
Junior — Middle

In che modo è possibile garantire la sicurezza delle API?

sobes.tech AI

Risposta dell'AI

Per garantire la sicurezza delle API in Go (e in generale), vengono adottati diversi approcci principali:

  1. Autenticazione e autorizzazione — verificare chi effettua la richiesta e se ha i permessi per eseguire l'azione. Ad esempio, usare JWT (JSON Web Tokens), OAuth2.

  2. Crittografia del traffico — usare HTTPS per proteggere i dati durante la trasmissione.

  3. Validazione e sanificazione dei dati di input — per prevenire injection SQL, XSS e altri attacchi.

  4. Limitazione del numero di richieste (rate limiting) — per difendersi da attacchi DDoS.

  5. Logging e monitoraggio — per tracciare attività sospette.

  6. Utilizzo di librerie sicure e aggiornamento delle dipendenze — per evitare vulnerabilità note.

Esempio di una semplice verifica di autorizzazione in Go:

func authMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        token := r.Header.Get("Authorization")
        if token != "Bearer valid-token" {
            http.Error(w, "Unauthorized", http.StatusUnauthorized)
            return
        }
        next.ServeHTTP(w, r)
    })
}

Questo esempio mostra una verifica di base del token nell'intestazione della richiesta.