Využite rámec Go's Gin na zabezpečenie svojich webových aplikácií pomocou zoznamu povolených adries IP.

V modernej sfére internetových technológií je dôležité zabezpečiť bezpečnosť webových aplikácií a servery nemožno preceňovať, keďže frekvencia a sofistikovanosť kybernetických útokov neustále rastie zvýšiť. Z tohto dôvodu narastá aj potreba robustných a špičkových bezpečnostných opatrení pre webové systémy.

Whitelisting adries IP je jednou z mnohých moderných techník na zabezpečenie webových aplikácií, serverov a rozhraní API. Hoci je používa sa len v niektorých špecifických prípadoch, je to odporúčaný spôsob zabezpečenia obmedzenia prístupu k zdrojom na internete, keď potrebné.

Čo je to zoznam povolených IP adries?

IP whitelisting je jednoducho a typ bielej listiny ktoré možno označiť ako webové bezpečnostné opatrenie používané na obmedzenie prístupu k sieti alebo zdroju na definovanú IP adresu alebo rozsah IP adries, ktoré sa považujú za oprávnené na prístup do systému.

Keď je v systéme implementovaný zoznam povolených IP adries, do systému a zdrojov na ňom majú prístup iba adresy IP, ktoré sú pridané do zoznamu povolených, zatiaľ čo ostatné adresy IP sú blokované.

instagram viewer

Zoznam povolených IP adries je veľmi bežný spôsob zabezpečenia veľmi kritických údajov, ktoré by mali byť dostupné iba jednotlivcovi alebo určitej skupine ľudí a mali by byť chránené pred akýmkoľvek pokusom o hacknutie.

Bežný príklad pridania IP adries je v MongoDB Atlas, kde si nastaviť databázový klaster Mongo v cloude a zobrazí sa výzva na pridanie vašej aktuálnej adresy IP do zoznamu, takže požiadavky na vašu databázu alebo klaster budú povolené len vtedy, keď prídu z vášho počítača.

Kedy by ste mali implementovať IP Whitelisting?

Whitelisting IP nie je niečo, čo potrebuje každý systém alebo aplikácia. Existujú prípady, kedy je odporúčané a vhodné implementovať ho do aplikácie alebo systému. Nasleduje niekoľko príkladov scenárov, v ktorých by ste mali zvážiť implementáciu zoznamu povolených adries IP.

  • Keď je aplikácia určená len na použitie špecifickou skupinou používateľov, ako sú zamestnanci alebo zákazníci konkrétnej spoločnosti.
  • Ak chcete, aby bola aplikácia prístupná len z konkrétneho miesta, môžete pridať na bielu listinu rozsah adries IP špecifických len pre toto miesto.
  • Keď sa aplikácia používa na poskytovanie prístupu k dôverným informáciám alebo duševnému vlastníctvu, ako je napríklad výskumná databáza alebo proprietárny softvér.
  • Keď je aplikácia súkromná, ale prístupná cez internet a musí byť chránená pred vonkajšími hrozbami, ako sú DDoS útoky alebo infekcie škodlivým softvérom.
  • Keď je aplikácia hosťovaná na verejnej cloudovej platforme a musí byť chránená pred neoprávneným prístupom iných nájomníkov alebo používateľov platformy.
  • Keď sa aplikácia používa v regulovanom odvetví, ako je zdravotníctvo alebo financie, kde sa vyžaduje súlad s bezpečnostnými štandardmi.

Existuje oveľa viac prípadov, ale v zásade vždy, keď má aplikácia niektorú z vlastností uvedených vyššie, mali by ste zvážiť implementáciu zoznamu povolených adries IP.

Ako implementovať IP Whitelisting v Go

Go je populárny moderný programovací jazyk na vytváranie webových serverov a API dodávané so všetkým, čo potrebujete na vytvorenie štandardnej a bezpečnej webovej aplikácie.

Táto časť ukazuje použitie rámca Go's Gin na implementáciu vzorového servera a logiky prideľovania IP adries, čo je funkcia middlewaru. Rámec Gin môžete nainštalovať do projektu spustením nasledujúceho príkazu.

prejdite na stránku github.com/gin-gonic/gin

Po nainštalovaní rámca Gin môžete teraz pokračovať v implementácii middlewaru IP whitelistingu. Môžete vytvoriť nový súbor middlewaru kdekoľvek vo svojom projekte v závislosti od architektúry projektu. Tu je implementácia funkcie middleware:

balík middleware

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

funcIPWhiteListMiddleware(biely zoznam mapa[reťazec]bool)gin.HandlerFunc {
vrátiťfunc(c *gin. Kontext) {
userIP := c. ClientIP()

ak !biely zoznam[userIP] {
c. AbortWithStatusJSON(http. StavZakázané, gin. H{
"chyba": "Nemáte oprávnenie na prístup k tomuto zdroju!",
})
} inak {
c. Ďalšie()
}
}
}

Vo vyššie uvedenom kóde je IPWhiteListMiddleware funkcia je definovaná tak, aby akceptovala definovanú bielu listinu IP adries ako argument. Whitelist je implementovaný ako štruktúra údajov mapy, takže IP adresy môžu byť ľahko priradené hodnoty pravda a falošný na označenie ich prístupnosti.

Potom funkcia používa rámec Gin ClientIP funkcia na získanie aktuálnej IP adresy používateľa, ktorý sa pokúša podať žiadosť, a skontroluje, či je prítomná v zozname povolených adries a pomocou pravda hodnotu. Ak sa nenájde, alebo sa zistí, že má hodnotu falošný, middleware preruší požiadavku a vráti chybu 403 (zakázané).

Je možné implementovať vzorový koncový bod na testovanie tejto funkcie, aby ste videli, ako funguje biely zoznam IP. Nasledujúci kód je program, ktorý definuje whitelist a implementuje dva koncové body (obmedzený a neobmedzený).

balík Hlavná

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

var IPWhitelist = mapa[reťazec]bool{
"127.0.0.1": pravda,
"111.2.3.4": pravda,
"::1": pravda,
}

funcHlavná() {
router := gin. Predvolené ()

router. GET("/index", func(c *gin. Kontext) {
c. JSON(http. Stav OK, gin. H{
"správa": "Vitajte v mojej zabezpečenej aplikácii!",
})
})

limitedPage := smerovač. Skupina("/")
obmedzená stránka. Použitie (stredný softvér. IPWhiteListMiddleware (IPWhitelist))

obmedzená stránka. GET("/adminZone", func(c *gin. Kontext) {
c. JSON(http. Stav OK, gin. H{
"správa": "Tento koncový bod je zabezpečený pomocou zoznamu povolených adries IP!",
})
})

router. Spustiť(":3333")
}

Keď je aplikácia spustená s choď spustiť main.go, server sa spustí na porte 3333 a môžete spustiť testovacie požiadavky na /adminZone koncový bod, aby ste videli, ako funguje middleware. Môžete tiež prepínať medzi hodnotou adresy IP localhost v bielej listine pravda a falošný.

Tu je vzorová žiadosť, ktorá ukáže, keď adresa IP nie je pridaná na bielu listinu alebo keď je jej hodnota v bielej listine nastavená na falošný:

Tu je ďalšia žiadosť o to, kedy je adresa IP prítomná v zozname povolených adries IP s jej hodnotou nastavenou na pravda:

Môžete dostať chybovú odpoveď 403 (Zakázané), ak otestujete program pridaním všeobecnej IP adresy localhost (127.0.0.1) na bielu listinu. Adresa IP, ktorá bude s najväčšou pravdepodobnosťou fungovať lokálne, je ::1 čo je ekvivalent IPv6 k 127.0.0.1 (IPv4). Skúste pridať na bielu listinu ::1 ak 127.0.0.1 odmietne fungovať a môžete sa tiež pokúsiť prihlásiť userIP premennej v konzole, aby ste videli presnú adresu, ktorá sa používa.

Zabezpečenie webových aplikácií pomocou zoznamu povolených adries IP

V dnešnom svete je bezpečnosť webových aplikácií a systémov nanajvýš dôležitá, keďže technológie neustále napredujú. Zoznam povolených adries IP je veľmi jednoduchý a efektívny spôsob, ako obmedziť prístup k zdrojom na internete iba na dôveryhodné zdroje.

Doteraz bol v tomto článku podrobne popísaný koncept whitelistingu IP adries, kedy ho implementovať a ako ho implementovať v Go pomocou rámca Gin. Odporúča sa implementovať IP whitelisting iba tam, kde je to vhodné, aby sa predišlo zbytočným technickým nákladom.