Sobes.tech
Junior — Middle

Kuidas tagada API-de turvalisus?

sobes.tech AI

Vastus AI-lt

Go-s (ja üldiselt) API-de turvalisuse tagamiseks rakendatakse mitmeid peamisi lähenemisviise:

  1. Autentimine ja autoriseerimine — kontrollida, kes teeb päringu ja kas tal on õigused tegevuse teostamiseks. Näiteks JWT (JSON Web Tokens), OAuth2 kasutamine.

  2. Liikluse krüpteerimine — HTTPS kasutamine andmete kaitsmiseks edastamise ajal.

  3. Sisendandmete valideerimine ja sanitiseerimine — SQL-injektsioonide, XSS ja teiste rünnakute vältimiseks.

  4. Päringute arvu piiramine (rate limiting) — DDoS-rünnakute eest kaitsmiseks.

  5. Logimine ja jälgimine — kahtlase tegevuse jälgimiseks.

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