Sobes.tech
Junior — Middle

Jakými způsoby lze zajistit bezpečnost API?

sobes.tech AI

Odpověď od AI

Pro zajištění bezpečnosti API v Go (a obecně) se používá několik hlavních přístupů:

  1. Autentizace a autorizace — ověření, kdo dělá požadavek a má-li práva k provedení akce. Například použití JWT (JSON Web Tokens), OAuth2.

  2. Šifrování přenosu — použití HTTPS k ochraně dat při přenosu.

  3. Validace a sanitizace vstupních dat — k prevenci SQL injection, XSS a dalších útoků.

  4. Omezení počtu požadavků (rate limiting) — k ochraně před DDoS útoky.

  5. Logování a monitoring — pro sledování podezřelé aktivity.

  6. Použití bezpečných knihoven a aktualizace závislostí — k vyhýbání se známým zranitelnostem.

Příklad jednoduché kontroly autorizace v 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)
    })
}

Tento příklad ukazuje základní kontrolu tokenu v hlavičce požadavku.