Cum se poate garanta siguranța interfețelor API?
sobes.tech AI
Răspuns de la AI
Pentru a asigura securitatea API-urilor în Go (și în general), se aplică mai multe abordări principale:
-
Autentificare și autorizare — verificarea cine face solicitarea și dacă are dreptul de a efectua acțiunea. De exemplu, utilizarea JWT (JSON Web Tokens), OAuth2.
-
Criptarea traficului — utilizarea HTTPS pentru protejarea datelor în timpul transferului.
-
Validarea și sanitizarea datelor de intrare — pentru a preveni injecțiile SQL, XSS și alte atacuri.
-
Limitarea ratei de solicitări (rate limiting) — pentru a se proteja împotriva atacurilor DDoS.
-
Logare și monitorizare — pentru a urmări activitatea suspectă.
-
Utilizarea bibliotecilor sigure și actualizarea dependențelor — pentru a evita vulnerabilitățile cunoscute.
Exemplu de verificare simplă a autorizării în 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)
})
}
Acest exemplu demonstrează o verificare de bază a tokenului în antetul cererii.