Golang webalkalmazások biztonságossá tétele IP engedélyezési listával

Golang webalkalmazások biztonságossá tétele IP engedélyezési listával
Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

Az internetes technológia modern birodalmában a webalkalmazások és -kiszolgálók biztonságának biztosításának fontosságát nem lehet túlbecsülni, mivel a kibertámadások gyakorisága és kifinomultsága folyamatosan nő. Emiatt a webalapú rendszerek robusztus és élvonalbeli biztonsági intézkedéseinek szükségessége is növekszik.





MAKEUSEOF A NAP VIDEÓJA GÖRGÖZSEN A TARTALOM FOLYTATÁSHOZ

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 csak bizonyos esetekben használják, ajánlott módja annak, hogy szükség esetén korlátozzák az internetes erőforrásokhoz való hozzáférést.





hogyan lehet jailbreakolni az ios 11 -et számítógéppel

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.

megnézheti a helyi csatornákat a roku -on

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.

 go get github.com/gin-gonic/gin 

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:

 package middlewares 

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

func IPWhiteListMiddleware(whitelist map[string]bool) gin.HandlerFunc {
    return func(c *gin.Context) {
        userIP := c.ClientIP()

        if !whitelist[userIP] {
            c.AbortWithStatusJSON(http.StatusForbidden, gin.H{
                "error": "You are not authorized to access this resource!",
            })
        } else {
            c.Next()
        }
    }
}

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.

legjobb ftp kliens Windows 10 -hez

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 (egy korlátozott és egy korlátlant) valósít meg.

 package main 

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

var IPWhitelist = map[string]bool{
    "127.0.0.1": true,
    "111.2.3.4": true,
    "::1": true,
}

func main() {
    router := gin.Default()

    router.GET("/index", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Welcome to my secure application!",
        })
    })

    restrictedPage := router.Group("/")
    restrictedPage.Use(middlewares.IPWhiteListMiddleware(IPWhitelist))

    restrictedPage.GET("/adminZone", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "This endpoint is secured with IP whitelisting!",
        })
    })

    router.Run(":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 :

  Tesztkérés, ha az IP-cím nincs engedélyezőlistán

Í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 :

  Tesztkérés arra vonatkozóan, hogy az IP-cím mikor szerepel az engedélyezőlistán