Használja a Go's Gin keretrendszert, hogy IP-engedélyezőlistával biztosítsa webalkalmazásait.
Az internetes technológia modern birodalmában a webalkalmazások biztonságának biztosításának fontossága és a szervereket nem lehet túlbecsülni, mivel a kibertámadások gyakorisága és kifinomultsága továbbra is fennáll fokozni. Emiatt a webalapú rendszerek robusztus és élvonalbeli biztonsági intézkedéseinek szükségessége is növekszik.
Az IP-címek engedélyezési listája a webalkalmazások, -kiszolgálók és API-k védelmére szolgáló számos modern technika egyike. Bár az csak bizonyos esetekben alkalmazzák, ajánlott módja az internetes forrásokhoz való hozzáférés korlátozásának, amikor szükséges.
Mi az IP fehérlistázás?
Az IP fehérlistára helyezés egyszerűen a engedélyezési lista típusa amely webes biztonsági intézkedésnek nevezhető, amellyel a hálózathoz vagy erőforráshoz való hozzáférést korlátozzák egy meghatározott IP-címre vagy IP-címek tartományára, amelyek jogosultnak minősülnek a rendszerhez való hozzáférésre.
Amikor az IP-engedélyezési listát megvalósítják egy rendszerben, csak az engedélyezőlistára felvett IP-címek férhetnek hozzá a rendszerhez és a rajta lévő erőforrásokhoz, míg a többi IP-cím blokkolva van.
Az IP fehérlistára helyezés egy nagyon gyakori módja a nagyon kritikus adatok védelmének, amelyeknek csak egy személy vagy egy adott csoport számára kell hozzáférhetőek, és védve minden feltörési kísérlettől.
Az IP-engedélyezőlistára helyezés gyakori példája a MongoDB Atlas, ahol Ön állítson be egy Mongo adatbázis-fürtöt a felhőben és a rendszer arra kéri, hogy adja hozzá az aktuális IP-címét egy listához, így az adatbázisba vagy fürtbe irányuló kérések csak akkor engedélyezettek, ha azok a számítógépéről érkeznek.
Mikor érdemes bevezetni az IP engedélyezési listát?
Az IP-engedélyezőlistára nem minden rendszernek vagy alkalmazásnak szüksége van. Vannak esetek, amikor javasolt és célszerű alkalmazásban, rendszerben implementálni. Az alábbiakban bemutatunk néhány példát azokra a forgatókönyvekre, amelyekben érdemes megfontolni egy IP-engedélyezőlista bevezetését.
- Amikor az alkalmazást csak a felhasználók egy meghatározott csoportja, például egy adott vállalat alkalmazottai vagy ügyfelei használhatják.
- Ha azt szeretné, hogy az alkalmazás csak egy adott helyről legyen elérhető, engedélyezőlistára helyezheti az IP-címek tartományát, amelyek csak az adott helyhez tartoznak.
- Amikor az alkalmazást bizalmas információkhoz vagy szellemi tulajdonokhoz, például kutatási adatbázisokhoz vagy védett szoftverekhez való hozzáférés biztosítására használják.
- Amikor az alkalmazás privát, de az interneten keresztül elérhető, és védeni kell a külső fenyegetésektől, például a DDoS-támadásoktól vagy a rosszindulatú programfertőzésektől.
- Amikor az alkalmazást nyilvános felhőplatformon tárolják, és védeni kell a platform többi bérlőjének vagy felhasználóinak jogosulatlan hozzáférésétől.
- Ha az alkalmazást olyan szabályozott iparágban használják, mint például az egészségügy vagy a pénzügy, ahol megkövetelik a biztonsági előírások betartását.
Sokkal több eset létezik, de alapvetően, ha egy alkalmazás rendelkezik a fent említett tulajdonságok bármelyikével, akkor fontolóra kell vennie az IP-engedélyezőlista megvalósítását.
IP-címek engedélyezése a Go-ban
A Go egy népszerű modern programozási nyelv webszerverek építésére és API-k mindennel, amire szükséged van egy szabványos és biztonságos webalkalmazás elkészítéséhez.
Ez a szakasz bemutatja a Go's Gin keretrendszer használatát a mintaszerver és az IP-engedélyezési logika megvalósítására, amely egy köztes szoftver funkció. A Gin keretrendszert a következő parancs futtatásával telepítheti egy projektbe.
menj a github.com/gin-gonic/gin oldalra
A Gin keretrendszer telepítése után megkezdheti az IP whitelisting middleware bevezetését. A projekt architektúrától függően bárhol létrehozhat új köztes szoftverfájlt. Íme a köztes szoftver funkció megvalósítása:
csomag köztes szoftverek
import (
"github.com/gin-gonic/gin"
"net/http"
)funcIPWhiteListMiddleware(fehér lista térkép[húr]bool)gin.HandlerFunc {
Visszatérésfunc(c *gin. Kontextus) {
felhasználói IP := c. ClientIP()
ha !whitelist[felhasználói IP] {
c. AbortWithStatusJSON(http. ÁllapotTiltva, gin. H{
"hiba": "Nincs jogosultságod ehhez az erőforráshoz való hozzáféréshez!",
})
} más {
c. Következő()
}
}
}
A fenti kódban a IPWhiteListMiddleware A függvény úgy van definiálva, hogy argumentumként elfogadjon egy meghatározott IP-címek engedélyezési listáját. Az engedélyezési lista térképadat-struktúraként valósul meg, így az IP-címekhez könnyen hozzá lehet rendelni értékeit igaz és hamis hogy jelezzék elérhetőségüket.
Ezután a függvény a Gin keretrendszerét használja ClientIP funkció segítségével lekéri a kérelmet benyújtani próbáló felhasználó aktuális IP-címét, és ellenőrzi, hogy az szerepel-e az engedélyezőlistán és igaz érték. Ha nem található, vagy úgy találják, hogy értéke van hamis, a köztes szoftver megszakítja a kérést, és 403-as hibát ad vissza (Tiltott).
A funkció tesztelésére szolgáló mintavégpont implementálható, hogy megtudja, hogyan működik az IP-engedélyezőlista. A következő kód egy program, amely engedélyezőlistát határoz meg, és két végpontot valósít meg (egy korlátozott és egy korlátlant).
csomag fő-
import (
"github.com/gin-gonic/gin"
"go-ip-whitelist/middleware"
"net/http"
)var IPWhitelist = térkép[húr]bool{
"127.0.0.1": igaz,
"111.2.3.4": igaz,
"::1": igaz,
}funcfő-() {
router := gin. Alapértelmezett()router. KAP("/index", func(c *gin. Kontextus) {
c. JSON(http. ÁllapotOK, gin. H{
"üzenet": "Üdvözöljük biztonságos alkalmazásomban!",
})
})limitedPage := router. Csoport("/")
korlátozott oldal. Használat (középső eszközök. IPWhiteListMiddleware (IPWhitelist))korlátozott oldal. KAP("/adminZone", func(c *gin. Kontextus) {
c. JSON(http. ÁllapotOK, gin. H{
"üzenet": "Ez a végpont IP-engedélyezőlistával védett!",
})
})
router. Fuss(":3333")
}
Amikor az alkalmazás fut a menj fuss fő.go, a szerver a 3333-as porton indul, és tesztkéréseket futtathat a /adminZone végpont, hogy megtudja, hogyan működik a köztes szoftver. Az engedélyezési listában a localhost IP értékét is átkapcsolhatja igaz és hamis.
Íme egy minta kérés, amely megmutatja, ha az IP-cím nincs engedélyezőlistán, vagy ha értéke az engedélyezési listán a következőre van állítva hamis:
Íme egy másik kérés arra vonatkozóan, hogy az IP-cím mikor szerepel az IP-engedélyezőlistában, értéke pedig a következőre van állítva igaz:
403-as hibaválaszt kaphat (Tiltott), ha a programot úgy teszteli, hogy engedélyezi az általános localhost IP-címet (127.0.0.1). Az az IP-cím, amely valószínűleg helyileg működik ::1 ami a 127.0.0.1 (Ipv4) IPv6 megfelelője. Próbáld meg az engedélyezési listát ::1 ha a 127.0.0.1 nem hajlandó működni, és megpróbálhatja naplózni a userIP változót a konzolban a használt pontos cím megtekintéséhez.
Webes alkalmazások védelme IP-engedélyezőlistával
A mai világban a webalkalmazások és -rendszerek biztonsága rendkívül fontos, mivel a technológia folyamatosan fejlődik. Az IP fehérlistára helyezés egy nagyon egyszerű és hatékony módja annak, hogy az internetes erőforrásokhoz való hozzáférést csak megbízható forrásokra korlátozzuk.
Ebben a cikkben eddig részletesen foglalkoztunk az IP-címek engedélyezőlistájának fogalmával, mikor és hogyan valósítsuk meg a Go-ban a Gin keretrendszer használatával. A szükségtelen technikai költségek elkerülése érdekében ajánlatos csak adott esetben az IP-engedélyezési listát megvalósítani.