Sobes.tech
Junior — Middle

Kā nodrošināt API drošību?

sobes.tech AI

Atbilde no AI

Lai nodrošinātu API drošību Go (un kopumā), tiek izmantoti vairāki galvenie pieejas veidi:

  1. Autentifikācija un autorizācija — pārbaudīt, kas veic pieprasījumu un vai tam ir tiesības veikt darbību. Piemēram, izmantot JWT (JSON Web Tokens), OAuth2.

  2. Trafika šifrēšana — izmantot HTTPS, lai aizsargātu datus pārraides laikā.

  3. Ievades datu validācija un sanitizācija — novērst SQL injekcijas, XSS un citus uzbrukumus.

  4. Pieprasījumu skaita ierobežošana (rate limiting) — aizsardzībai pret DDoS uzbrukumiem.

  5. Žurnālu reģistrēšana un uzraudzība — aizdomīgas aktivitātes izsekošanai.

  6. Drošu bibliotēku izmantošana un atkarību atjaunināšana — zināmu ievainojamību novēršanai.

Piemērs vienkāršai autorizācijas pārbaudei 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)
    })
}

Šis piemērs demonstrē pamata token pārbaudi pieprasījuma galvenē.