Uporabite Gojevo ogrodje Gin, da zaščitite svoje spletne aplikacije s seznamom dovoljenih naslovov IP.

V sodobnem svetu internetne tehnologije je pomembnost zagotavljanja varnosti spletnih aplikacij in strežnikov ni mogoče preceniti, saj se pogostost in prefinjenost kibernetskih napadov še naprej povečujeta povečati. Zaradi tega narašča tudi potreba po robustnih in najsodobnejših varnostnih ukrepih za spletne sisteme.

Bela lista naslovov IP je ena od mnogih sodobnih tehnik za zaščito spletnih aplikacij, strežnikov in API-jev. Čeprav je ki se uporablja samo v nekaterih posebnih primerih, je priporočen način za zagotavljanje omejitve dostopa do virov na internetu, ko potrebno.

Kaj je seznam dovoljenih naslovov IP?

Bela lista IP je preprosto a vrsta seznama dovoljenih ki se lahko imenuje spletni varnostni ukrep, ki se uporablja za omejitev dostopa do omrežja ali vira na določen naslov IP ali obseg naslovov IP, ki se štejejo za pooblaščene za dostop do sistema.

Ko je v sistemu implementiran seznam dovoljenih naslovov IP, lahko samo naslovi IP, ki so dodani na seznam dovoljenih, dostopajo do sistema in virov v njem, medtem ko so drugi naslovi IP blokirani.

instagram viewer

Seznam dovoljenih naslovov IP je zelo pogost način za zaščito zelo kritičnih podatkov, ki bi morali biti na voljo samo posamezniku ali določeni skupini ljudi in zaščiteni pred kakršnimi koli poskusi vdora.

Pogost primer bele liste IP je v Atlasu MongoDB, kjer ste nastavite gručo baze podatkov Mongo v oblaku in pozvani ste, da dodate svoj trenutni naslov IP na seznam, tako da so zahteve vaši bazi podatkov ali gruči dovoljene samo, če prihajajo iz vašega računalnika.

Kdaj bi morali uvesti seznam dovoljenih naslovov IP?

Seznam dovoljenih naslovov IP ni nekaj, kar potrebuje vsak sistem ali aplikacija. Obstajajo primeri, ko je priporočljivo in primerno, da ga implementirate v aplikacijo ali sistem. Sledi nekaj primerov scenarijev, v katerih bi morali razmisliti o implementaciji seznama dovoljenih naslovov IP.

  • Ko je aplikacija namenjena samo za uporabo s strani določene skupine uporabnikov, kot so zaposleni ali stranke določenega podjetja.
  • Če želite, da je aplikacija dostopna samo z določene lokacije, lahko na seznam dovoljenih uvrstite niz naslovov IP, značilnih samo za to lokacijo.
  • Ko se aplikacija uporablja za zagotavljanje dostopa do zaupnih informacij ali intelektualne lastnine, kot je raziskovalna zbirka podatkov ali lastniška programska oprema.
  • Ko je aplikacija zasebna, vendar dostopna prek interneta in jo je treba zaščititi pred zunanjimi grožnjami, kot so napadi DDoS ali okužbe z zlonamerno programsko opremo.
  • Ko aplikacija gostuje na javni platformi v oblaku in jo je treba zaščititi pred nepooblaščenim dostopom drugih najemnikov ali uporabnikov platforme.
  • Ko se aplikacija uporablja v regulirani panogi, kot sta zdravstvo ali finance, kjer je zahtevana skladnost z varnostnimi standardi.

Obstaja veliko več primerov, vendar bi morali razmisliti o uvedbi seznama dovoljenih naslovov IP, če ima aplikacija katero koli od zgoraj navedenih lastnosti.

Kako uvesti seznam dovoljenih naslovov IP v Go

Go je priljubljen sodoben programski jezik za izdelavo spletnih strežnikov in API-ji v paketu z vsem, kar potrebujete za izdelavo standardne in varne spletne aplikacije.

Ta razdelek prikazuje uporabo Gojevega ogrodja Gin za implementacijo vzorčnega strežnika in logike seznama dovoljenih naslovov IP, ki je funkcija vmesne programske opreme. Ogrodje Gin lahko namestite v projekt tako, da zaženete naslednji ukaz.

pojdite na github.com/gin-gonic/gin

Po namestitvi ogrodja Gin lahko zdaj nadaljujete z implementacijo vmesne programske opreme za seznam dovoljenih naslovov IP. Novo datoteko vmesne programske opreme lahko ustvarite kjer koli v svojem projektu, odvisno od arhitekture vašega projekta. Tukaj je implementacija funkcije vmesne programske opreme:

paket vmesna oprema

uvoz (
"github.com/gin-gonic/gin"
"net/http"
)

funkIPWhiteListMiddleware(bela lista zemljevid[vrvica]bool)gin.HandlerFunc {
vrnitevfunk(c *gin. kontekst) {
uporabniški IP := c. ClientIP()

če !whitelist[uporabniškiIP] {
c. Prekini s stanjemJSON(http. Status Prepovedano, gin. H{
"napaka": "Nimate dovoljenja za dostop do tega vira!",
})
} drugače {
c. Naslednji()
}
}
}

V zgornji kodi je IPWhiteListMiddleware funkcija je definirana tako, da kot argument sprejme definiran seznam dovoljenih naslovov IP. Seznam dovoljenih je implementiran kot podatkovna struktura zemljevida, tako da je naslovom IP mogoče zlahka dodeliti vrednosti prav in lažno da označite njihovo dostopnost.

Nato funkcija uporablja ogrodje Gin ClientIP funkcijo za pridobitev trenutnega naslova IP uporabnika, ki poskuša narediti zahtevo, in preveri, ali je prisoten na seznamu dovoljenih in z prav vrednost. Če ni najden ali se ugotovi, da ima vrednost lažno, vmesna programska oprema prekine zahtevo in vrne napako 403 (prepovedano).

Vzorčno končno točko za preizkušanje te funkcionalnosti je mogoče implementirati, da vidite, kako deluje beli seznam IP. Naslednja koda je program, ki definira beli seznam in implementira dve končni točki (omejeno in neomejeno).

paket glavni

uvoz (
"github.com/gin-gonic/gin"
"go-ip-whitelist/middlewares"
"net/http"
)

var IPWhitelist = zemljevid[vrvica]bool{
"127.0.0.1": prav,
"111.2.3.4": prav,
"::1": prav,
}

funkglavni() {
usmerjevalnik := gin. Privzeto()

usmerjevalnik. GET("/index", funk(c *gin. kontekst) {
c. JSON(http. Stanje OK, gin. H{
"sporočilo": "Dobrodošli v moji varni aplikaciji!",
})
})

restrictedPage := usmerjevalnik. Skupina ("/")
omejena stran. Uporaba (vmesna oprema. IPWhiteListMiddleware (IPWhitelist))

omejena stran. GET("/adminZone", funk(c *gin. kontekst) {
c. JSON(http. Stanje OK, gin. H{
"sporočilo": "Ta končna točka je zaščitena z dovoljenim seznamom IP!",
})
})

usmerjevalnik. Zaženi (":3333")
}

Ko se aplikacija izvaja z go run main.go, se strežnik zažene na vratih 3333 in lahko izvajate testne zahteve za /adminZone končno točko, da vidite, kako deluje vmesna programska oprema. Prav tako lahko preklapljate med vrednostjo IP lokalnega gostitelja na seznamu dovoljenih prav in lažno.

Tukaj je vzorec zahteve za prikaz, ko naslov IP ni na seznamu dovoljenih ali ko je njegova vrednost na seznamu dovoljenih nastavljena na lažno:

Tukaj je še ena zahteva, kdaj je naslov IP prisoten na seznamu dovoljenih naslovov IP z vrednostjo, nastavljeno na prav:

Morda boste prejeli odgovor o napaki 403 (prepovedano), če preizkusite program tako, da na seznam dovoljenih dodate generični naslov IP lokalnega gostitelja (127.0.0.1). Naslov IP, ki bo najverjetneje deloval lokalno, je ::1 kar je IPv6 enakovredno 127.0.0.1 (Ipv4). Poskusite dati na seznam dovoljenih ::1 če 127.0.0.1 noče delovati, lahko poskusite tudi prijaviti userIP spremenljivko v konzoli, da vidite točen naslov, ki se uporablja.

Zaščita spletnih aplikacij s seznamom dovoljenih naslovov IP

V današnjem svetu je varnost spletnih aplikacij in sistemov izjemnega pomena, saj tehnologija nenehno napreduje. Seznam dovoljenih naslovov IP je zelo preprost in učinkovit način za omejitev dostopa do virov v internetu samo zaupanja vrednim virom.

Doslej je bil v tem članku podrobno obravnavan koncept seznama dovoljenih naslovov IP, kdaj ga implementirati in kako ga implementirati v Go z uporabo ogrodja Gin. Priporočljivo je, da seznam dovoljenih naslovov IP uvedete samo, kjer je to primerno, da se izognete nepotrebnim tehničnim stroškom.