Искористите Го'с Гин фрамеворк да бисте заштитили своје веб апликације помоћу ИП беле листе.

У савременом домену интернет технологије, значај обезбеђивања безбедности веб апликација а сервери се не могу прецијенити јер учесталост и софистицираност сајбер напада и даље расту појачати. Због тога, потреба за снажним и најсавременијим безбедносним мерама за системе засноване на вебу такође расте.

Беле листе ИП адреса је једна од многих модерних техника за обезбеђивање веб апликација, сервера и АПИ-ја. Иако јесте користи се само у неким специфичним случајевима, то је препоручени начин да се обезбеди ограничење приступа ресурсима на интернету када потребна.

Шта је ИП беле листе?

ИП беле листе је једноставно а врста беле листе која се може назвати мера безбедности на вебу која се користи за ограничавање приступа мрежи или ресурсу на дефинисану ИП адресу или опсег ИП адреса које се сматрају овлашћеним за приступ систему.

Када се у систему имплементира бела листа ИП адреса, само ИП адресе које су додате на белу листу могу да приступе систему и ресурсима на њему, док су друге ИП адресе блокиране.

instagram viewer

ИП беле листе је веома уобичајен начин обезбеђења веома критичних података који би требало да буду доступни само појединцу или одређеном скупу људи и заштићени од било каквог покушаја хаковања.

Уобичајени пример ИП беле листе је у МонгоДБ Атласу где сте поставите Монго кластер базе података у облаку и од вас се тражи да додате своју тренутну ИП адресу на листу тако да су захтеви вашој бази података или кластеру дозвољени само када долазе са вашег рачунара.

Када треба да примените ИП белу листу?

ИП беле листе није нешто што треба сваком систему или апликацији. Постоје случајеви када је препоручљиво и прикладно имплементирати га у апликацију или систем. Следе неки примери сценарија у којима би требало да размислите о примени беле листе ИП адреса.

  • Када је апликација намењена само за употребу од стране одређене групе корисника, као што су запослени или купци одређене компаније.
  • Када желите да апликација буде доступна само са одређене локације, можете да наведете низ ИП адреса специфичних само за ту локацију.
  • Када се апликација користи за обезбеђивање приступа поверљивим информацијама или интелектуалној својини, као што је база података истраживања или власнички софтвер.
  • Када је апликација приватна, али доступна преко интернета и треба да буде заштићена од спољних претњи, као што су ДДоС напади или инфекције малвером.
  • Када је апликација хостована на јавној платформи у облаку и треба је заштитити од неовлашћеног приступа других закупаца или корисника платформе.
  • Када се апликација користи у регулисаној индустрији, као што су здравство или финансије, где се захтева усклађеност са безбедносним стандардима.

Постоји много више случајева, али у основи, кад год апликација има било које од горе наведених својстава, требало би да размислите о примени беле листе ИП адреса.

Како да примените ИП белу листу у Го

Го је популаран савремени програмски језик за прављење веб сервера и АПИ-ји у пакету са свиме што вам је потребно за прављење стандардне и безбедне веб апликације.

Овај одељак демонстрира употребу Го Гин оквира за имплементацију узорка сервера и логике ИП беле листе која је функција међуверског софтвера. Можете инсталирати Гин оквир у пројекат тако што ћете покренути следећу команду.

идите на гитхуб.цом/гин-гониц/гин

Након инсталирања Гин оквира, сада можете наставити са имплементацијом међувера за ИП белу листу. Можете креирати нову датотеку средњег софтвера било где у вашем пројекту, у зависности од архитектуре вашег пројекта. Ево имплементације функције средњег софтвера:

пакет Миддлеварес

увоз (
"гитхуб.цом/гин-гониц/гин"
"нет/хттп"
)

фунцИПВхитеЛистМиддлеваре(бела листа Мапа[низ]боол)џин.ХандлерФунц {
повратакфунц(ц *џин. Контекст) {
усерИП := ц. ЦлиентИП()

ако !вхителист[усерИП] {
ц. АбортВитхСтатусЈСОН(хттп. СтатусФорбидден, џин. Х{
"грешка": „Нисте овлашћени да приступите овом ресурсу!“,
})
} друго {
ц. Следећи()
}
}
}

У коду изнад, ИПВхитеЛистМиддлеваре функција је дефинисана да прихвати дефинисану белу листу ИП адреса као аргумент. Бела листа је имплементирана као структура података мапе тако да се ИП адресама лако могу доделити вредности истина и лажно да укаже на њихову доступност.

Затим функција користи Гин оквир ЦлиентИП функцију да добије тренутну ИП адресу корисника који покушава да упути захтев и проверава да ли је присутна на белој листи и са истина вредност. Ако није пронађен, или је утврђено да има вредност од лажно, средњи софтвер прекида захтев и враћа грешку 403 (Забрањено).

Пример крајње тачке за тестирање ове функционалности може се применити да би се видело како функционише бела листа ИП адреса. Следећи код је програм који дефинише белу листу и имплементира две крајње тачке (ограничену и неограничену).

пакет главни

увоз (
"гитхуб.цом/гин-гониц/гин"
„го-ип-вхителист/миддлеварес“
"нет/хттп"
)

вар ИПВхителист = Мапа[низ]боол{
"127.0.0.1": истина,
"111.2.3.4": истина,
"::1": истина,
}

фунцглавни() {
рутер := гин. Уобичајено()

рутер. ДОБИТИ("/индек", фунц(ц *џин. Контекст) {
ц. ЈСОН(хттп. Статус ОК, џин. Х{
"порука": „Добро дошли у моју безбедну апликацију!“,
})
})

лимитедПаге := рутер. Група("/")
лимитедПаге. Користите (средњи програм. ИПВхитеЛистМиддлеваре (ИПВхителист))

лимитедПаге. ДОБИТИ("/админЗоне", фунц(ц *џин. Контекст) {
ц. ЈСОН(хттп. Статус ОК, џин. Х{
"порука": „Ова крајња тачка је заштићена ИП белом листом!“,
})
})

рутер. Трцати(":3333")
}

Када се апликација покрене са го рун маин.го, сервер почиње на порту 3333 и можете покренути тестне захтеве за /adminZone крајња тачка, да видите како функционише међувера. Такође можете да промените вредност ИП локалног хоста на белој листи између истина и лажно.

Ево примера захтева за приказ када ИП адреса није на белој листи или када је њена вредност на белој листи подешена на лажно:

Ево још једног захтева када је ИП адреса присутна на ИП белој листи са њеном вредношћу постављеном на истина:

Можда ћете добити одговор на грешку 403 (Забрањено) ако тестирате програм тако што ћете ставити на белу листу генеричку ИП адресу локалног хоста (127.0.0.1). ИП адреса која ће највероватније радити локално је ::1 што је ИПв6 еквивалент 127.0.0.1 (Ипв4). Покушајте да ставите на белу листу ::1 ако 127.0.0.1 одбија да ради, а такође можете покушати да пријавите усерИП променљиву у конзоли да бисте видели тачну адресу која се користи.

Обезбеђивање веб апликација помоћу ИП беле листе

У данашњем свету, безбедност веб апликација и система је од највеће важности јер технологија напредује. ИП беле листе је веома једноставан и ефикасан начин да се приступ ресурсима на интернету ограничи само на поуздане изворе.

До сада је у овом чланку концепт беле листе ИП адреса био детаљно покривен, када га применити и како га применити у Го користећи Гин оквир. Препоручује се примена ИП беле листе само тамо где је то могуће како би се избегли непотребни технички трошкови.