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:
-
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.
-
Crittografia del traffico — usare HTTPS per proteggere i dati durante la trasmissione.
-
Validazione e sanificazione dei dati di input — per prevenire injection SQL, XSS e altri attacchi.
-
Limitazione del numero di richieste (rate limiting) — per difendersi da attacchi DDoS.
-
Logging e monitoraggio — per tracciare attività sospette.
-
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.