Golang tīmekļa lietojumprogrammu nodrošināšana, izmantojot IP balto sarakstu

Golang tīmekļa lietojumprogrammu nodrošināšana, izmantojot IP balto sarakstu
Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Mūsdienu interneta tehnoloģiju jomā nevar pārvērtēt tīmekļa lietojumprogrammu un serveru drošības nodrošināšanas nozīmi, jo kiberuzbrukumu biežums un sarežģītība turpina pieaugt. Šī iemesla dēļ pieaug arī nepieciešamība pēc stabiliem un progresīviem drošības pasākumiem tīmekļa sistēmām.





DIENAS VIDEO MAKEUSEOF RITINĀT, LAI TURPINĀTU AR SATURU

IP adrešu baltā saraksta iekļaušana ir viena no daudzajām modernajām metodēm tīmekļa lietojumprogrammu, serveru un API nodrošināšanai. Lai gan tas tiek izmantots tikai dažos īpašos gadījumos, tas ir ieteicams veids, kā nepieciešamības gadījumā ierobežot piekļuvi resursiem internetā.





Kas ir IP iekļaušana baltajā sarakstā?

IP iekļaušana baltajā sarakstā ir vienkārši a baltā saraksta veids ko var saukt par tīmekļa drošības pasākumu, ko izmanto, lai ierobežotu piekļuvi tīklam vai resursam līdz noteiktai IP adresei vai IP adrešu diapazonam, kas tiek uzskatīts par pilnvarotu piekļūt sistēmai.





Ja sistēmā ir ieviesta IP baltā saraksta pievienošana, sistēmai un tajā esošajiem resursiem var piekļūt tikai baltajam sarakstam pievienotās IP adreses, savukārt citas IP adreses tiek bloķētas.

IP baltā saraksta iekļaušana ir ļoti izplatīts veids, kā nodrošināt ļoti svarīgus datus, kuriem jābūt pieejamiem tikai atsevišķai personai vai noteiktai personu grupai un kas ir aizsargāti pret jebkādiem uzlaušanas mēģinājumiem.



Izplatīts IP baltā saraksta piemērs ir MongoDB Atlas, kur jūs iestatiet Mongo datu bāzes klasteru mākonī un jums tiek piedāvāts pievienot savu pašreizējo IP adresi sarakstam, lai pieprasījumi jūsu datu bāzei vai klasterim būtu atļauti tikai tad, ja tie nāk no jūsu datora.

Kad jums vajadzētu ieviest IP balto sarakstu?

IP baltajā sarakstā nav nepieciešams katrai sistēmai vai lietojumprogrammai. Ir gadījumi, kad ir ieteicams un lietderīgi to ieviest lietojumprogrammā vai sistēmā. Tālāk ir sniegti daži scenāriju piemēri, kuros jums vajadzētu apsvērt iespēju ieviest IP balto sarakstu.





  • Ja lietojumprogramma ir paredzēta lietošanai tikai noteiktai lietotāju grupai, piemēram, konkrēta uzņēmuma darbiniekiem vai klientiem.
  • Ja vēlaties, lai lietojumprogramma būtu pieejama tikai no noteiktas vietas, baltajā sarakstā varat iekļaut tikai šai vietai raksturīgu IP adrešu diapazonu.
  • Ja lietojumprogramma tiek izmantota, lai nodrošinātu piekļuvi konfidenciālai informācijai vai intelektuālajam īpašumam, piemēram, pētījumu datubāzei vai patentētai programmatūrai.
  • Ja lietojumprogramma ir privāta, bet pieejama internetā un ir jāaizsargā no ārējiem draudiem, piemēram, DDoS uzbrukumiem vai ļaunprātīgas programmatūras infekcijām.
  • Kad lietojumprogramma tiek mitināta publiskā mākoņa platformā un ir jāaizsargā no citu platformas nomnieku vai lietotāju nesankcionētas piekļuves.
  • Ja lietojumprogrammu izmanto regulētā nozarē, piemēram, veselības aprūpē vai finansēs, kur ir nepieciešama atbilstība drošības standartiem.

Ir daudz vairāk gadījumu, taču būtībā, ja lietojumprogrammai ir kāds no iepriekš minētajiem rekvizītiem, jums vajadzētu apsvērt iespēju ieviest IP balto sarakstu.

Kā ieviest IP balto sarakstu Go

Go ir populāra mūsdienu programmēšanas valoda tīmekļa serveru veidošanai un API komplektā ar visu nepieciešamo, lai izveidotu standarta un drošu tīmekļa lietojumprogrammu.





Šajā sadaļā ir parādīta Go's Gin ietvara izmantošana, lai ieviestu servera paraugu un IP baltā saraksta loģiku, kas ir starpprogrammatūras funkcija. Gin ietvaru var instalēt projektā, izpildot šo komandu.

 go get github.com/gin-gonic/gin 

Pēc Gin ietvara instalēšanas tagad varat ieviest IP baltā saraksta starpprogrammatūru. Varat izveidot jaunu starpprogrammatūras failu jebkurā vietā savā projektā atkarībā no projekta arhitektūras. Tālāk ir norādīta starpprogrammatūras funkcijas ieviešana.

 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()
        }
    }
}

Iepriekš minētajā kodā IPWhiteListMiddleware funkcija ir definēta, lai pieņemtu definētu IP adrešu balto sarakstu kā argumentu. Baltais saraksts tiek ieviests kā kartes datu struktūra, lai IP adresēm varētu viegli piešķirt vērtības taisnība un viltus lai norādītu uz to pieejamību.

Pēc tam funkcija izmanto Gin ietvaru Klienta IP funkcija, lai iegūtu tā lietotāja pašreizējo IP adresi, kurš mēģina veikt pieprasījumu, un pārbauda, ​​vai tā ir iekļauta baltajā sarakstā un ar taisnība vērtību. Ja tas nav atrasts vai ir konstatēts, ka tam ir vērtība viltus , starpprogrammatūra pārtrauc pieprasījumu un atgriež kļūdu 403 (Aizliegts).

Var ieviest galapunkta paraugu šīs funkcionalitātes pārbaudei, lai redzētu, kā darbojas IP baltais saraksts. Šis kods ir programma, kas definē balto sarakstu un ievieš divus galapunktus (ierobežotu un neierobežotu).

 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")
}

Kad lietojumprogramma tiek palaists ar ej skrien galvenais.go , serveris sākas ar portu 3333, un jūs varat izpildīt testa pieprasījumus uz /adminZone galapunktu, lai redzētu, kā darbojas starpprogrammatūra. Varat arī pārslēgt vietējā resursdatora IP vērtību baltajā sarakstā starp taisnība un viltus .

Šis ir pieprasījuma paraugs, lai parādītu, kad IP adrese nav iekļauta baltajā sarakstā vai kad tās vērtība baltajā sarakstā ir iestatīta uz viltus :

  Pārbaudes pieprasījums, ja IP adrese nav iekļauta baltajā sarakstā

Šis ir vēl viens pieprasījums par to, kad IP adrese ir iekļauta IP baltajā sarakstā, un tās vērtība ir iestatīta uz taisnība :

labākā vieta datoru detaļu iegādei
  Pārbaudes pieprasījums, kad IP adrese ir iekļauta baltajā sarakstā