Използвайте рамката Gin на Go, за да защитите уеб приложенията си с IP бели списъци.
В съвременната сфера на интернет технологиите е важно да се гарантира безопасността на уеб приложенията и сървърите не могат да бъдат преувеличени, тъй като честотата и сложността на кибератаките продължават да се увеличават повишавам. Поради това необходимостта от стабилни и авангардни мерки за сигурност за уеб базирани системи също нараства.
Списъкът с бели IP адреси е една от многото съвременни техники за защита на уеб приложения, сървъри и API. Въпреки че е така използвано само в някои специфични случаи, това е препоръчителен начин за осигуряване на ограничаване на достъпа до ресурси в интернет, когато необходими.
Какво е IP бял списък?
IP белият списък е просто a тип бели списъци което може да се нарече мярка за уеб сигурност, използвана за ограничаване на достъпа до мрежа или ресурс до определен IP адрес или диапазон от IP адреси, считани за оторизирани за достъп до системата.
Когато IP белият списък е внедрен в система, само IP адресите, които са добавени към белия списък, имат достъп до системата и ресурсите в нея, докато други IP адреси са блокирани.
Списъкът с бели IP адреси е много често срещан начин за осигуряване на много критични данни, които трябва да бъдат достъпни само за отделен човек или определен набор от хора и защитени от всякакви опити за хакване.
Често срещан пример за IP бели списъци е в MongoDB Atlas, където вие настройте клъстер на база данни Mongo в облака и ще бъдете подканени да добавите текущия си IP адрес към списък, така че заявките към вашата база данни или клъстер да са разрешени само когато идват от вашия компютър.
Кога трябва да внедрите IP бели списъци?
Белият списък с IP адреси не е нещо, от което се нуждае всяка система или приложение. Има случаи, в които е препоръчително и подходящо да се внедри в приложение или система. По-долу са дадени някои примери за сценарии, при които трябва да обмислите прилагането на бял списък с IP адреси.
- Когато приложението е предназначено само за използване от определена група потребители, като служители или клиенти на определена компания.
- Когато искате приложението да бъде достъпно само от определено местоположение, можете да поставите в белия списък набор от IP адреси, специфични само за това местоположение.
- Когато приложението се използва за предоставяне на достъп до поверителна информация или интелектуална собственост, като например изследователска база данни или патентован софтуер.
- Когато приложението е частно, но достъпно през интернет и трябва да бъде защитено от външни заплахи, като DDoS атаки или инфекции със зловреден софтуер.
- Когато приложението се хоства на публична облачна платформа и трябва да бъде защитено от неоторизиран достъп от други наематели или потребители на платформата.
- Когато приложението се използва в регулирана индустрия, като например здравеопазване или финанси, където се изисква съответствие със стандартите за сигурност.
Има много повече случаи, но по същество, когато дадено приложение има някое от свойствата, посочени по-горе, тогава трябва да помислите за внедряване на IP бял списък.
Как да внедрите IP бял списък в Go
Go е популярен модерен език за програмиране за изграждане на уеб сървъри и приложни програмни интерфейси (API) в комплект с всичко необходимо за изграждане на стандартно и защитено уеб приложение.
Този раздел демонстрира използването на рамката Gin на Go за внедряване на примерния сървър и логиката за бели списъци на IP, което е функция на междинен софтуер. Можете да инсталирате рамката Gin в проект, като изпълните следната команда.
вземете github.com/gin-gonic/gin
След като инсталирате рамката на Gin, вече можете да продължите с внедряването на междинния софтуер за бели списъци на IP. Можете да създадете нов файл на междинен софтуер навсякъде във вашия проект, в зависимост от архитектурата на вашия проект. Ето изпълнението на функцията на мидълуера:
пакет междинен софтуер
импортиране (
"github.com/gin-gonic/gin"
"net/http"
)функIPWhiteListMiddleware(бял списък карта[низ]bool)джин.HandlerFunc {
връщанефунк(c *gin. контекст) {
userIP := c. ClientIP()
ако !whitelist[userIP] {
° С. AbortWithStatusJSON(http. StatusForbidden, джин. H{
"грешка": „Нямате право да получите достъп до този ресурс!“,
})
} друго {
° С. Следващия()
}
}
}
В кода по-горе, IPWhiteListMiddleware функцията е дефинирана да приема определен бял списък с IP адреси като аргумент. Белият списък е реализиран като структура от данни за карта, така че на IP адресите могат лесно да се присвояват стойности вярно и невярно за да се посочи тяхната достъпност.
След това функцията използва рамката на Gin ClientIP функция за получаване на текущия IP адрес на потребителя, който се опитва да направи заявката, и проверява дали присъства в белия списък и с вярно стойност. Ако не е намерено или се установи, че има стойност от невярно, междинният софтуер прекъсва заявката и връща грешка 403 (забранено).
Примерна крайна точка за тестване на тази функционалност може да бъде приложена, за да видите как работи списъкът с бели IP адреси. Следният код е програма, която дефинира бял списък и прилага две крайни точки (ограничена и неограничена).
пакет основен
импортиране (
"github.com/gin-gonic/gin"
"go-ip-whitelist/middlewares"
"net/http"
)вар IPWhitelist = карта[низ]bool{
"127.0.0.1": вярно,
"111.2.3.4": вярно,
"::1": вярно,
}функосновен() {
рутер := джин. По подразбиране()рутер. GET("/индекс", функ(c *gin. контекст) {
° С. JSON(http. СтатусОК, джин. H{
"съобщение": „Добре дошли в моето защитено приложение!“,
})
})restrictedPage := рутер. група("/")
ограничена страница. Използвайте (средни продукти. IPWhiteListMiddleware (IPWhitelist))ограничена страница. GET("/adminZone", функ(c *gin. контекст) {
° С. JSON(http. СтатусОК, джин. H{
"съобщение": „Тази крайна точка е защитена с IP бели списъци!“,
})
})
рутер. бягай(":3333")
}
Когато приложението се изпълнява с отидете, стартирайте main.go, сървърът стартира на порт 3333 и можете да стартирате тестови заявки към /adminZone крайна точка, за да видите как работи междинният софтуер. Можете също така да превключвате стойността на IP на локалния хост в белия списък между вярно и невярно.
Ето примерна заявка за показване, когато IP адресът не е в белия списък или когато стойността му в белия списък е зададена на невярно:
Ето още една заявка за това кога IP адресът присъства в белия списък с IP със стойност, зададена на вярно:
Може да получите отговор за грешка 403 (забранено), ако тествате програмата, като поставите в белия списък общия локален IP адрес (127.0.0.1). IP адресът, който най-вероятно ще работи локално, е ::1 което е еквивалентът на IPv6 на 127.0.0.1 (Ipv4). Опитайте с бял списък ::1 ако 127.0.0.1 откаже да работи, можете също да опитате да регистрирате userIP променлива в конзолата, за да видите точния използван адрес.
Защита на уеб приложения с IP бели списъци
В днешния свят сигурността на уеб приложенията и системите е от изключително значение, тъй като технологиите продължават да напредват. IP белият списък е много прост и ефективен начин за ограничаване на достъпа до ресурси в интернет само до надеждни източници.
Досега в тази статия концепцията за белите списъци на IP адреси беше разгледана подробно, кога да се внедри и как да се приложи в Go с помощта на Gin framework. Препоръчително е да прилагате IP бели списъци само когато е подходящо, за да избегнете ненужни технически разходи.