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ů:
-
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.
-
Šifrování přenosu — použití HTTPS k ochraně dat při přenosu.
-
Validace a sanitizace vstupních dat — k prevenci SQL injection, XSS a dalších útoků.
-
Omezení počtu požadavků (rate limiting) — k ochraně před DDoS útoky.
-
Logování a monitoring — pro sledování podezřelé aktivity.
-
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.