Kuidas tagada API-de turvalisus?
sobes.tech AI
Vastus AI-lt
Go-s (ja üldiselt) API-de turvalisuse tagamiseks rakendatakse mitmeid peamisi lähenemisviise:
-
Autentimine ja autoriseerimine — kontrollida, kes teeb päringu ja kas tal on õigused tegevuse teostamiseks. Näiteks JWT (JSON Web Tokens), OAuth2 kasutamine.
-
Liikluse krüpteerimine — HTTPS kasutamine andmete kaitsmiseks edastamise ajal.
-
Sisendandmete valideerimine ja sanitiseerimine — SQL-injektsioonide, XSS ja teiste rünnakute vältimiseks.
-
Päringute arvu piiramine (rate limiting) — DDoS-rünnakute eest kaitsmiseks.
-
Logimine ja jälgimine — kahtlase tegevuse jälgimiseks.
-
Turvaliste teekide kasutamine ja sõltuvuste uuendamine — teadaolevate haavatavuste vältimiseks.
Näide lihtsast autoriseerimise kontrollist Go-s:
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)
})
}
See näide näitab põhilist tokeni kontrolli päringu päises.