Используйте платформу Go’s Gin для защиты своих веб-приложений с помощью белого списка IP-адресов.

В современной сфере интернет-технологий важность обеспечения безопасности веб-приложений и серверы невозможно переоценить, поскольку частота и изощренность кибератак продолжают расти. усилить. Из-за этого также возрастает потребность в надежных и передовых мерах безопасности для веб-систем.

Белый список IP-адресов — один из многих современных методов защиты веб-приложений, серверов и API. Хотя это используется только в некоторых конкретных случаях, это рекомендуемый способ ограничения доступа к ресурсам в Интернете, когда нужный.

Что такое белый список IP-адресов?

Белый список IP-адресов — это просто тип белого списка это можно назвать мерой веб-безопасности, используемой для ограничения доступа к сети или ресурсу определенным IP-адресом или диапазоном IP-адресов, которые считаются авторизованными для доступа к системе.

Когда в системе реализован белый список IP-адресов, только IP-адреса, добавленные в белый список, могут получить доступ к системе и ее ресурсам, а другие IP-адреса заблокированы.

Белый список IP-адресов — очень распространенный способ защиты очень важных данных, которые должны быть доступны только отдельному человеку или определенной группе людей и защищены от любых попыток взлома.

Типичным примером белого списка IP-адресов является MongoDB Atlas, где вы настроить кластер базы данных Mongo в облаке и вам будет предложено добавить ваш текущий IP-адрес в список, чтобы запросы к вашей базе данных или кластеру разрешались только тогда, когда они исходят с вашего компьютера.

Когда следует внедрять белый список IP-адресов?

Белый список IP-адресов — это не то, что нужно каждой системе или приложению. Есть случаи, когда рекомендуется и уместно реализовать его в приложении или системе. Ниже приведены несколько примеров сценариев, в которых следует рассмотреть возможность реализации белого списка IP-адресов.

  • Когда приложение предназначено для использования только определенной группой пользователей, например, сотрудниками или клиентами определенной компании.
  • Если вы хотите, чтобы приложение было доступно только из определенного места, вы можете внести в белый список диапазон IP-адресов, характерных только для этого места.
  • Когда приложение используется для предоставления доступа к конфиденциальной информации или интеллектуальной собственности, такой как исследовательская база данных или проприетарное программное обеспечение.
  • Когда приложение является частным, но доступно через Интернет и нуждается в защите от внешних угроз, таких как DDoS-атаки или заражения вредоносным ПО.
  • Когда приложение размещено на общедоступной облачной платформе и нуждается в защите от несанкционированного доступа со стороны других арендаторов или пользователей платформы.
  • Когда приложение используется в регулируемой отрасли, такой как здравоохранение или финансы, где требуется соблюдение стандартов безопасности.

Есть много других случаев, но, по сути, всякий раз, когда приложение обладает любым из указанных выше свойств, вам следует рассмотреть возможность реализации белого списка IP-адресов.

Как реализовать белый список IP-адресов в Go

Go — популярный современный язык программирования для создания веб-серверов. и API в комплекте со всем необходимым для создания стандартного и безопасного веб-приложения.

В этом разделе демонстрируется использование платформы Go Gin для реализации примера сервера и логики белого списка IP-адресов, которая является функцией промежуточного программного обеспечения. Вы можете установить инфраструктуру Gin в проекте, выполнив следующую команду.

зайди на github.com/gin-gonic/gin

После установки среды Gin вы можете приступить к реализации промежуточного программного обеспечения для внесения в белый список IP-адресов. Вы можете создать новый файл промежуточного программного обеспечения в любом месте вашего проекта, в зависимости от архитектуры вашего проекта. Вот реализация функции промежуточного программного обеспечения:

упаковка промежуточное ПО

Импортировать (
"github.com/джин-гоник/джин"
"сеть/http"
)

функцияIPWhiteListПромежуточное ПО(белый список карта[нить]логический)Джин.HandlerFunc {
возвращатьсяфункция(с *джин. контекст) {
IP-адрес пользователя := c. IP клиента()

если !белый список[IP-адрес пользователя] {
в. AbortWithStatusJSON(http. Статус Forbidden, джин. ЧАС{
"ошибка": "Вы не авторизованы для доступа к этому ресурсу!",
})
} еще {
в. Следующий()
}
}
}

В приведенном выше коде IPWhiteListПромежуточное ПО Функция определена так, чтобы принимать определенный белый список IP-адресов в качестве аргумента. Белый список реализован в виде структуры данных карты, поэтому IP-адресам можно легко присвоить значения истинный и ЛОЖЬ указать их доступность.

Затем функция использует фреймворк Gin. IP-адрес клиента функция для получения текущего IP-адреса пользователя, пытающегося сделать запрос, и проверяет, присутствует ли он в белом списке и с истинный ценить. Если он не найден или его значение равно ЛОЖЬпромежуточное ПО прерывает запрос и возвращает ошибку 403 (запрещено).

Можно реализовать пример конечной точки для тестирования этой функции, чтобы увидеть, как работает белый список IP-адресов. Следующий код представляет собой программу, которая определяет белый список и реализует две конечные точки (ограниченную и неограниченную).

упаковка основной

Импортировать (
"github.com/джин-гоник/джин"
"go-ip-белый список/промежуточное ПО"
"сеть/http"
)

вар Белый список IP-адресов = карта[нить]логический{
"127.0.0.1": истинный,
"111.2.3.4": истинный,
"::1": истинный,
}

функцияосновной() {
роутер := джин. По умолчанию()

маршрутизатор. ПОЛУЧАТЬ("/индекс", функция(с *джин. контекст) {
в. JSON (http. Статус в порядке, джин. ЧАС{
"сообщение": "Добро пожаловать в мое безопасное приложение!",
})
})

limitedPage := маршрутизатор. Группа("/")
ограниченная страница. Использовать (промежуточное ПО. IPWhiteListMiddleware (IPWhitelist))

ограниченная страница. ПОЛУЧАТЬ("/админзона", функция(с *джин. контекст) {
в. JSON (http. Статус в порядке, джин. ЧАС{
"сообщение": "Эта конечная точка защищена белым списком IP-адресов!",
})
})

маршрутизатор. Бегать(":3333")
}

Когда приложение запускается с иди беги main.go, сервер запускается на порту 3333, и вы можете запускать тестовые запросы к /adminZone endpoint, чтобы увидеть, как работает промежуточное ПО. Вы также можете переключать значение локального IP-адреса в белом списке между истинный и ЛОЖЬ.

Вот пример запроса, чтобы показать, когда IP-адрес не внесен в белый список или когда его значение в белом списке установлено на ЛОЖЬ:

Вот еще один запрос, когда IP-адрес присутствует в белом списке IP-адресов со значением, установленным на истинный:

Вы можете получить ответ об ошибке 403 (Запрещено), если протестируете программу, занеся в белый список общий IP-адрес локального хоста (127.0.0.1). IP-адрес, который, скорее всего, будет работать локально, ::1 который является эквивалентом IPv6 127.0.0.1 (Ipv4). Попробуйте внести в белый список ::1 если 127.0.0.1 отказывается работать, и вы также можете попробовать IP-адрес пользователя переменную в консоли, чтобы увидеть точный используемый адрес.

Защита веб-приложений с помощью белого списка IP-адресов

В современном мире безопасность веб-приложений и систем имеет первостепенное значение, поскольку технологии продолжают развиваться. Белый список IP-адресов — это очень простой и эффективный способ ограничить доступ к ресурсам в Интернете только доверенным источникам.

До сих пор в этой статье подробно рассматривалась концепция внесения IP-адресов в белый список, когда ее реализовывать и как реализовать в Go с использованием фреймворка Gin. Рекомендуется реализовывать белый список IP-адресов только там, где это уместно, чтобы избежать ненужных технических затрат.