Sobes.tech
Junior — Middle

Kaip galima užtikrinti API saugumą?

sobes.tech AI

Atsakymas iš AI

Siekiant užtikrinti API saugumą Go (ir apskritai), taikomi keli pagrindiniai požiūriai:

  1. Autentifikacija ir autorizacija — patikrinti, kas vykdo užklausą ir ar turi teisę atlikti veiksmą. Pavyzdžiui, naudoti JWT (JSON Web Tokens), OAuth2.

  2. Srauto šifravimas — naudoti HTTPS duomenų apsaugai perdavimo metu.

  3. Įvesties duomenų validavimas ir sanitarizacija — siekiant išvengti SQL injekcijų, XSS ir kitų atakų.

  4. Užklausų skaičiaus ribojimas (rate limiting) — apsaugai nuo DDoS atakų.

  5. Žurnalo įrašymas ir stebėsena — įtartinos veiklos sekimui.

  6. Naudoti saugias bibliotekas ir atnaujinti priklausomybes — žinomų pažeidžiamumų išvengimui.

Pavyzdys paprastos autorizacijos patikros 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 pavyzdys rodo bazinę token patikrą užklausos antraštėje.