Sobes.tech
Junior — Middle

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:

  1. Autentificare și autorizare — verificarea cine face solicitarea și dacă are dreptul de a efectua acțiunea. De exemplu, utilizarea JWT (JSON Web Tokens), OAuth2.

  2. Criptarea traficului — utilizarea HTTPS pentru protejarea datelor în timpul transferului.

  3. Validarea și sanitizarea datelor de intrare — pentru a preveni injecțiile SQL, XSS și alte atacuri.

  4. Limitarea ratei de solicitări (rate limiting) — pentru a se proteja împotriva atacurilor DDoS.

  5. Logare și monitorizare — pentru a urmări activitatea suspectă.

  6. 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.