Izmantojiet Go’s Gin ietvaru, lai aizsargātu savas tīmekļa lietotnes ar IP balto sarakstu.

Mūsdienu interneta tehnoloģiju jomā ir svarīgi nodrošināt tīmekļa lietojumprogrammu drošību un serverus nevar pārvērtēt, jo kiberuzbrukumu biežums un sarežģītība turpinās paaugstināt. Šī iemesla dēļ pieaug arī nepieciešamība pēc stabiliem un progresīviem drošības pasākumiem tīmekļa sistēmām.

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 tā ir tiek izmantots tikai atsevišķos gadījumos, tas ir ieteicams veids, kā nodrošināt piekļuves ierobežošanu resursiem internetā, kad nepieciešams.

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.

dodieties uz 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.

iepakojums starpprogrammatūra

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

funcIPWhiteListMiddleware(baltais saraksts karte[virkne]bool)džins.HandlerFunc {
atgrieztiesfunc(c *gin. konteksts) {
lietotāja IP adrese := c. Klienta IP()

ja !whitelist[lietotāja IP] {
c. AbortWithStatusJSON(http. StatussAizliegts, džins. H{
"kļūda": "Jums nav tiesību piekļūt šim resursam!",
})
} cits {
c. Nākamais()
}
}
}

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).

iepakojums galvenais

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

var IPWhitelist = karte[virkne]bool{
"127.0.0.1": taisnība,
"111.2.3.4": taisnība,
"::1": taisnība,
}

funcgalvenais() {
maršrutētājs := džins. Noklusējums()

maršrutētājs. GŪT("/indekss", func(c *gin. konteksts) {
c. JSON (http. Statuss OK, gin. H{
"ziņa": "Laipni lūdzam manā drošajā lietojumprogrammā!",
})
})

limitedPage := maršrutētājs. grupa("/")
ierobežota lapa. Izmantojiet (starpprogrammatūra. IPWhiteListMiddleware (IPWhitelist))

ierobežota lapa. GŪT("/adminZone", func(c *gin. konteksts) {
c. JSON (http. Statuss OK, gin. H{
"ziņa": "Šis galapunkts ir aizsargāts, izmantojot IP balto sarakstu!",
})
})

maršrutētājs. Palaist(":3333")
}

Kad lietojumprogramma tiek palaists ar ej skrien galvenais.go, serveris tiek startēts 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:

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

Jūs varat saņemt 403 kļūdas atbildi (aizliegts), ja pārbaudīsit programmu, baltajā sarakstā iekļaujot vispārīgo lokālā resursdatora IP adresi (127.0.0.1). IP adrese, kas, visticamāk, darbosies lokāli, ir ::1 kas ir IPv6 ekvivalents 127.0.0.1 (Ipv4). Mēģiniet iekļaut baltajā sarakstā ::1 ja 127.0.0.1 atsakās darboties, un jūs varat arī mēģināt reģistrēt lietotāja IP mainīgo konsolē, lai redzētu precīzu izmantoto adresi.

Tīmekļa lietotņu nodrošināšana, izmantojot IP balto sarakstu

Mūsdienu pasaulē tīmekļa lietojumprogrammu un sistēmu drošība ir ārkārtīgi svarīga, jo tehnoloģija turpina attīstīties. IP baltā saraksta iekļaušana ir ļoti vienkāršs un efektīvs veids, kā ierobežot piekļuvi resursiem internetā tikai no uzticamiem avotiem.

Līdz šim šajā rakstā ir detalizēti apskatīts IP adrešu baltā saraksta jēdziens, kad to ieviest un kā to ieviest programmā Go, izmantojot Gin sistēmu. Lai izvairītos no nevajadzīgām tehniskām izmaksām, ir ieteicams ieviest IP balto sarakstu tikai vajadzības gadījumā.