Folosiți cadrul Go’s Gin pentru a vă asigura aplicațiile web cu lista albă IP.

În domeniul modern al tehnologiei internetului, importanța asigurării siguranței aplicațiilor web iar serverele nu pot fi supraevaluate pe măsură ce frecvența și sofisticarea atacurilor cibernetice continuă spori. Din acest motiv, necesitatea unor măsuri de securitate robuste și de ultimă oră pentru sistemele bazate pe web este, de asemenea, în creștere.

Lista albă a adreselor IP este una dintre numeroasele tehnici moderne de securizare a aplicațiilor web, serverelor și API-urilor. Deși este folosit doar în unele cazuri specifice, este o modalitate recomandată de asigurare a restricției accesului la resursele de pe internet atunci când Necesar.

Ce este lista albă IP?

Lista albă IP este pur și simplu a tip de lista albă care poate fi denumită o măsură de securitate web utilizată pentru a restricționa accesul la o rețea sau o resursă la o adresă IP definită sau la o serie de adrese IP considerate autorizate să acceseze sistemul.

instagram viewer

Când lista albă IP este implementată într-un sistem, numai adresele IP care sunt adăugate la lista albă pot accesa sistemul și resursele de pe acesta, în timp ce alte adrese IP sunt blocate.

Lista albă IP este o modalitate foarte comună de a securiza date foarte critice, care ar trebui să fie disponibile doar pentru o persoană sau pentru un anumit set de persoane și protejate de orice încercare de hacking.

Un exemplu comun de listare albă IP este în MongoDB Atlas unde dvs configurați un cluster de baze de date Mongo în cloud și vi se solicită să adăugați adresa IP curentă la o listă, astfel încât solicitările către baza de date sau cluster să fie permise numai atunci când acestea provin de la computerul dvs.

Când ar trebui să implementați lista albă IP?

Lista albă IP nu este ceva de care orice sistem sau aplicație are nevoie. Există cazuri în care este recomandată și adecvată implementarea acesteia într-o aplicație sau sistem. Următoarele sunt câteva exemple de scenarii în care ar trebui să luați în considerare implementarea unei liste albe de IP.

  • Când aplicația este destinată utilizării numai de către un anumit grup de utilizatori, cum ar fi angajații sau clienții unei anumite companii.
  • Când doriți ca aplicația să fie accesibilă numai dintr-o anumită locație, puteți lista albă o serie de adrese IP specifice numai acelei locații.
  • Când aplicația este utilizată pentru a oferi acces la informații confidențiale sau proprietate intelectuală, cum ar fi o bază de date de cercetare sau software proprietar.
  • Când aplicația este privată, dar accesibilă prin internet și trebuie protejată de amenințări externe, cum ar fi atacurile DDoS sau infecțiile cu malware.
  • Când aplicația este găzduită pe o platformă cloud publică și trebuie protejată împotriva accesului neautorizat al altor chiriași sau utilizatori ai platformei.
  • Când aplicația este utilizată într-o industrie reglementată, cum ar fi asistența medicală sau financiară, unde este necesară conformitatea cu standardele de securitate.

Există multe mai multe cazuri, dar în principiu, ori de câte ori o aplicație are oricare dintre proprietățile menționate mai sus, atunci ar trebui să luați în considerare implementarea unei liste albe de IP.

Cum să implementați lista albă IP în Go

Go este un limbaj de programare modern popular pentru construirea de servere web și API-uri la pachet cu tot ce aveți nevoie pentru a construi o aplicație web standard și sigură.

Această secțiune demonstrează utilizarea cadrului Go’s Gin pentru a implementa serverul de probă și logica de listă albă IP, care este o funcție middleware. Puteți instala cadrul Gin într-un proiect rulând următoarea comandă.

du-te la github.com/gin-gonic/gin

După instalarea cadrului Gin, acum puteți continua să implementați middleware-ul pentru lista albă IP. Puteți crea un fișier middleware nou oriunde în proiect, în funcție de arhitectura proiectului. Iată implementarea funcției middleware:

pachet middleware-uri

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

funcIPWhiteListMiddleware(lista albă Hartă[şir]bool)gin.HandlerFunc {
întoarcerefunc(c *gin. Context) {
userIP := c. ClientIP()

dacă !listă albă[IP utilizator] {
c. AbortWithStatusJSON(http. StatusInterzis, gin. H{
"eroare": „Nu sunteți autorizat să accesați această resursă!”,
})
} altfel {
c. Următorul()
}
}
}

În codul de mai sus, IPWhiteListMiddleware funcția este definită pentru a accepta o listă albă de adrese IP definite ca argument. Lista albă este implementată ca o structură de date de hartă, astfel încât adreselor IP să li se poată atribui cu ușurință valori Adevărat și fals pentru a indica accesibilitatea acestora.

Apoi funcția folosește cadrul Gin ClientIP pentru a obține adresa IP curentă a utilizatorului care încearcă să facă cererea și verifică dacă este prezentă în lista albă și cu un Adevărat valoare. Dacă nu este găsit sau se constată că are o valoare de fals, middleware-ul anulează cererea și returnează o eroare 403 (Interzis).

Un exemplu de punct final pentru a testa această funcționalitate poate fi implementat pentru a vedea cum funcționează lista albă IP. Următorul cod este un program care definește o listă albă și implementează două puncte finale (unul restricționat și unul nerestricționat).

pachet principal

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

var IPWhitelist = Hartă[şir]bool{
"127.0.0.1": Adevărat,
"111.2.3.4": Adevărat,
"::1": Adevărat,
}

funcprincipal() {
router := gin. Mod implicit()

router. OBȚINE("/index", func(c *gin. Context) {
c. JSON(http. Stare OK, gin. H{
"mesaj": „Bine ați venit la aplicația mea sigură!”,
})
})

restrictedPage := router. Grup("/")
restrictedPage. Utilizare (middlewares. IPWhiteListMiddleware (IPWhitelist))

restrictedPage. OBȚINE(„/adminZone”, func(c *gin. Context) {
c. JSON(http. Stare OK, gin. H{
"mesaj": „Acest punct final este securizat cu lista albă IP!”,
})
})

router. Alerga(":3333")
}

Când aplicația este rulată cu du-te alerga main.go, serverul pornește pe portul 3333 și puteți rula solicitări de testare către /adminZone endpoint, pentru a vedea cum funcționează middleware-ul. De asemenea, puteți comuta între valoarea IP-ului localhost din lista albă Adevărat și fals.

Iată un exemplu de solicitare pentru a arăta când adresa IP nu este inclusă în lista albă sau când valoarea sa din lista albă este setată la fals:

Iată o altă solicitare pentru când adresa IP este prezentă în lista albă IP cu valoarea sa setată la Adevărat:

Este posibil să primiți un răspuns de eroare 403 (Interzis) dacă testați programul prin includerea în lista albă a adresei IP locale a gazdei generice (127.0.0.1). Adresa IP care va funcționa cel mai probabil la nivel local este ::1 care este echivalentul IPv6 al lui 127.0.0.1 (Ipv4). Încercați să includeți pe lista albă ::1 dacă 127.0.0.1 refuză să funcționeze și puteți încerca, de asemenea, să vă înregistrați userIP variabilă în consolă pentru a vedea adresa exactă utilizată.

Securizarea aplicațiilor web cu lista albă IP

În lumea de astăzi, securitatea aplicațiilor și sistemelor web este de cea mai mare importanță, deoarece tehnologia continuă să avanseze. Lista albă IP este o modalitate foarte simplă și eficientă de a restricționa accesul la resursele de pe internet doar la surse de încredere.

Până acum, în acest articol, conceptul de lista albă a adreselor IP a fost tratat în detaliu, când să îl implementați și cum să îl implementați în Go folosind cadrul Gin. Se recomandă implementarea listei albe IP numai acolo unde este cazul, pentru a evita costurile tehnice inutile.