Skorzystaj z platformy Go's Gin, aby zabezpieczyć swoje aplikacje internetowe za pomocą białej listy adresów IP.

We współczesnej dziedzinie technologii internetowych znaczenie zapewnienia bezpieczeństwa aplikacji internetowych i serwerów nie można przecenić, biorąc pod uwagę stałą częstotliwość i wyrafinowanie cyberataków podnieść. Z tego powodu rośnie również zapotrzebowanie na solidne i najnowocześniejsze środki bezpieczeństwa dla systemów internetowych.

Biała lista adresów IP to jedna z wielu nowoczesnych technik zabezpieczania aplikacji internetowych, serwerów i interfejsów API. Chociaż to jest stosowany tylko w niektórych szczególnych przypadkach, jest zalecanym sposobem zapewnienia ograniczenia dostępu do zasobów w Internecie, gdy potrzebne.

Co to jest biała lista adresów IP?

Biała lista adresów IP to po prostu rodzaj białej listy które można określić jako środek bezpieczeństwa w sieci stosowany w celu ograniczenia dostępu do sieci lub zasobu do określonego adresu IP lub zakresu adresów IP uznawanych za upoważnione do dostępu do systemu.

Gdy w systemie zaimplementowana jest biała lista adresów IP, tylko adresy IP dodane do białej listy mają dostęp do systemu i znajdujących się w nim zasobów, podczas gdy inne adresy IP są blokowane.

Biała lista adresów IP to bardzo powszechny sposób zabezpieczania bardzo krytycznych danych, które powinny być dostępne tylko dla pojedynczej osoby lub określonej grupy osób i chronione przed wszelkimi próbami włamania.

Typowym przykładem białej listy adresów IP jest Atlas MongoDB, w którym możesz skonfigurować klaster bazy danych Mongo w chmurze i pojawi się monit o dodanie aktualnego adresu IP do listy, aby żądania kierowane do bazy danych lub klastra były dozwolone tylko wtedy, gdy pochodzą z komputera.

Kiedy należy wdrożyć białą listę adresów IP?

Biała lista adresów IP nie jest czymś, czego potrzebuje każdy system lub aplikacja. Istnieją przypadki, w których zalecane i właściwe jest zaimplementowanie go w aplikacji lub systemie. Poniżej przedstawiono kilka przykładów scenariuszy, w których należy rozważyć wdrożenie białej listy adresów IP.

  • Gdy aplikacja jest przeznaczona wyłącznie do użytku przez określoną grupę użytkowników, np. pracowników lub klientów konkretnej firmy.
  • Jeśli chcesz, aby aplikacja była dostępna tylko z określonej lokalizacji, możesz dodać do białej listy zakres adresów IP specyficznych tylko dla tej lokalizacji.
  • Gdy aplikacja służy do zapewniania dostępu do informacji poufnych lub własności intelektualnej, takich jak baza danych badań lub zastrzeżone oprogramowanie.
  • Gdy aplikacja jest prywatna, ale dostępna przez Internet i musi być chroniona przed zagrożeniami zewnętrznymi, takimi jak ataki DDoS lub infekcje złośliwym oprogramowaniem.
  • Gdy aplikacja jest hostowana na platformie chmury publicznej i musi być chroniona przed nieautoryzowanym dostępem innych najemców lub użytkowników platformy.
  • Gdy aplikacja jest używana w branży regulowanej, takiej jak służba zdrowia lub finanse, gdzie wymagana jest zgodność ze standardami bezpieczeństwa.

Istnieje znacznie więcej przypadków, ale zasadniczo, gdy aplikacja ma którąkolwiek z powyższych właściwości, należy rozważyć wdrożenie białej listy adresów IP.

Jak wdrożyć białą listę adresów IP w Go

Go to popularny nowoczesny język programowania do budowy serwerów WWW i interfejsy API w pakiecie ze wszystkim, czego potrzebujesz do zbudowania standardowej i bezpiecznej aplikacji internetowej.

Ta sekcja demonstruje użycie frameworka Gin Go do zaimplementowania przykładowego serwera i logiki białej listy adresów IP, która jest funkcją oprogramowania pośredniego. Możesz zainstalować platformę Gin w projekcie, uruchamiając następujące polecenie.

przejdź do https://github.com/gin-gonic/gin

Po zainstalowaniu frameworka Gin możesz teraz przystąpić do implementacji oprogramowania pośredniczącego białej listy adresów IP. Możesz utworzyć nowy plik oprogramowania pośredniego w dowolnym miejscu w projekcie, w zależności od architektury projektu. Oto implementacja funkcji oprogramowania pośredniczącego:

pakiet oprogramowanie pośrednie

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

funkcjaIPWhiteListMiddleware(biała lista mapa[strunowy]bool)Gin.HandlerFunc {
powrótfunkcja(c * gin. Kontekst) {
userIP := c. ClientIP()

Jeśli !biała lista[IP użytkownika] {
C. AbortWithStatusJSON(http. Stan Zakazany, dżin. H{
"błąd": „Nie masz uprawnień dostępu do tego zasobu!”,
})
} w przeciwnym razie {
C. Następny()
}
}
}

W powyższym kodzie plik IPWhiteListMiddleware funkcja jest zdefiniowana tak, aby akceptować zdefiniowaną białą listę adresów IP jako argument. Biała lista jest zaimplementowana jako struktura danych mapy, dzięki czemu adresom IP można łatwo przypisać wartości PRAWDA I FAŁSZ aby wskazać ich dostępność.

Następnie funkcja używa frameworka Gin KlientIP funkcja, aby uzyskać aktualny adres IP użytkownika próbującego wykonać żądanie i sprawdza, czy jest on obecny na białej liście i z PRAWDA wartość. Jeśli nie zostanie znaleziony lub okaże się, że ma wartość FAŁSZ, oprogramowanie pośredniczące przerywa żądanie i zwraca błąd 403 (Zabronione).

Można zaimplementować przykładowy punkt końcowy do testowania tej funkcji, aby zobaczyć, jak działa biała lista adresów IP. Poniższy kod to program, który definiuje białą listę i implementuje dwa punkty końcowe (ograniczony i nieograniczony).

pakiet główny

import (
"github.com/gin-gonic/gin"
"go-ip-whitelist/middleware"
„sieć/http”
)

rozm Biała lista IP = mapa[strunowy]bool{
"127.0.0.1": PRAWDA,
"111.2.3.4": PRAWDA,
"::1": PRAWDA,
}

funkcjagłówny() {
router := dżin. Domyślny()

ruter. DOSTAWAĆ("/indeks", funkcja(c * gin. Kontekst) {
C. JSON(http. StanOK, dżin. H{
"wiadomość": „Witam w mojej bezpiecznej aplikacji!”,
})
})

ograniczona strona:= router. Grupa("/")
ograniczona strona. Użyj (oprogramowanie pośrednie. IPWhiteListMiddleware (biała lista IP))

ograniczona strona. DOSTAWAĆ("/Strefa admina", funkcja(c * gin. Kontekst) {
C. JSON(http. StanOK, dżin. H{
"wiadomość": „Ten punkt końcowy jest zabezpieczony białą listą adresów IP!”,
})
})

ruter. Uruchomić(":3333")
}

Gdy aplikacja jest uruchamiana z idź uruchom main.go, serwer uruchamia się na porcie 3333 i możesz uruchamiać żądania testowe do /adminZone punktu końcowego, aby zobaczyć, jak działa oprogramowanie pośrednie. Możesz także przełączać wartość adresu IP hosta lokalnego na białej liście pomiędzy PRAWDA I FAŁSZ.

Oto przykładowe żądanie pokazania, kiedy adres IP nie znajduje się na białej liście lub gdy jego wartość na białej liście jest ustawiona na FAŁSZ:

Oto kolejna prośba o to, kiedy adres IP jest obecny na białej liście adresów IP z ustawioną wartością PRAWDA:

Możesz otrzymać odpowiedź na błąd 403 (Zabronione), jeśli przetestujesz program, umieszczając na białej liście ogólny adres IP hosta lokalnego (127.0.0.1). Adres IP, który najprawdopodobniej będzie działał lokalnie, to ::1 co jest odpowiednikiem IPv6 127.0.0.1 (IPv4). Wypróbuj białą listę ::1 jeśli 127.0.0.1 odmawia pracy, możesz także spróbować zalogować się adres IP użytkownika zmienną w konsoli, aby zobaczyć dokładny używany adres.

Zabezpieczanie aplikacji internetowych za pomocą białej listy adresów IP

W dzisiejszym świecie bezpieczeństwo aplikacji i systemów internetowych ma ogromne znaczenie, ponieważ technologia stale się rozwija. Biała lista adresów IP to bardzo prosty i skuteczny sposób na ograniczenie dostępu do zasobów w Internecie tylko do zaufanych źródeł.

Do tej pory w tym artykule szczegółowo omówiono koncepcję białej listy adresów IP, kiedy ją wdrożyć i jak ją wdrożyć w Go przy użyciu frameworka Gin. Zaleca się stosowanie białej listy adresów IP tylko w stosownych przypadkach, aby uniknąć niepotrzebnych kosztów technicznych.