Farih.co.id
Home Programming Mengamankan Aplikasi Web Golang Menggunakan IP Whitelisting

Mengamankan Aplikasi Web Golang Menggunakan IP Whitelisting

ip whitelisting article cover

Dalam ranah teknologi internet modern, pentingnya memastikan keamanan aplikasi dan server web tidak dapat dilebih-lebihkan karena frekuensi dan kecanggihan serangan dunia maya terus meningkat. Karena itu, kebutuhan akan langkah-langkah keamanan yang kuat dan mutakhir untuk sistem berbasis web juga meningkat.


Daftar putih alamat IP adalah salah satu dari banyak teknik modern untuk mengamankan aplikasi web, server, dan API. Meskipun hanya digunakan dalam beberapa kasus tertentu, ini merupakan cara yang disarankan untuk memastikan pembatasan akses ke sumber daya di internet bila diperlukan.


Apa Itu Daftar Putih IP?

Daftar putih IP hanyalah jenis daftar putih yang dapat disebut sebagai tindakan keamanan web yang digunakan untuk membatasi akses ke jaringan atau sumber daya ke alamat IP yang ditentukan atau rentang alamat IP yang dianggap sah untuk mengakses sistem.

Ketika daftar putih IP diimplementasikan dalam suatu sistem, hanya alamat IP yang ditambahkan ke daftar putih yang dapat mengakses sistem dan sumber daya di dalamnya, sementara alamat IP lainnya diblokir.

Daftar putih IP adalah cara yang sangat umum untuk mengamankan data yang sangat penting yang harus tersedia hanya untuk individu atau sekelompok orang tertentu, dan dilindungi dari upaya peretasan apa pun.

Contoh umum daftar putih IP ada di MongoDB Atlas tempat Anda menyiapkan klaster database Mongo di cloud dan Anda diminta untuk menambahkan alamat IP Anda saat ini ke daftar sehingga permintaan ke database atau klaster Anda hanya diperbolehkan jika berasal dari komputer.

Kapan Anda Harus Menerapkan Daftar Putih IP?

Daftar putih IP bukanlah sesuatu yang dibutuhkan setiap sistem atau aplikasi. Ada kasus di mana direkomendasikan dan sesuai untuk diterapkan dalam aplikasi atau sistem. Berikut adalah beberapa contoh skenario di mana Anda harus mempertimbangkan penerapan daftar putih IP.

  • Saat aplikasi hanya ditujukan untuk digunakan oleh sekelompok pengguna tertentu, seperti karyawan atau pelanggan perusahaan tertentu.
  • Bila Anda ingin aplikasi hanya dapat diakses dari lokasi tertentu, Anda dapat memasukkan rentang alamat IP khusus untuk lokasi itu saja ke daftar putih.
  • Saat aplikasi digunakan untuk menyediakan akses ke informasi rahasia atau kekayaan intelektual, seperti database penelitian atau perangkat lunak berpemilik.
  • Saat aplikasi bersifat pribadi tetapi dapat diakses melalui internet dan perlu dilindungi dari ancaman eksternal, seperti serangan DDoS atau infeksi malware.
  • Saat aplikasi dihosting di platform cloud publik dan perlu dilindungi dari akses tidak sah oleh penyewa lain atau pengguna platform.
  • Saat aplikasi digunakan dalam industri yang diatur, seperti layanan kesehatan atau keuangan, yang memerlukan kepatuhan terhadap standar keamanan.

Ada lebih banyak kasus, tetapi pada dasarnya, setiap kali aplikasi memiliki salah satu properti yang disebutkan di atas, Anda harus mempertimbangkan untuk menerapkan daftar putih IP.

Cara Menerapkan Daftar Putih IP di Go

Go adalah bahasa pemrograman modern yang populer untuk membangun server web dan API yang dibundel dengan semua yang Anda perlukan untuk membangun aplikasi web standar dan aman.

Bagian ini mendemonstrasikan penggunaan framework Go Gin untuk mengimplementasikan server sampel dan logika daftar putih IP yang merupakan fungsi middleware. Anda dapat menginstal kerangka kerja Gin dalam sebuah proyek dengan menjalankan perintah berikut.

 go get github.com/gin-gonic/gin

Setelah menginstal kerangka kerja Gin, Anda sekarang dapat melanjutkan untuk mengimplementasikan middleware daftar putih IP. Anda dapat membuat file middleware baru di manapun dalam proyek Anda, tergantung pada arsitektur proyek Anda. Berikut implementasi dari fungsi middleware:

 package middlewares

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

func IPWhiteListMiddleware(whitelist map[string]bool) gin.HandlerFunc {
    return func(c *gin.Context) {
        userIP := c.ClientIP()

        if !whitelist[userIP] {
            c.AbortWithStatusJSON(http.StatusForbidden, gin.H{
                "error": "You are not authorized to access this resource!",
            })
        } else {
            c.Next()
        }
    }
}

Pada kode di atas, the IPWhiteListMiddleware fungsi didefinisikan untuk menerima daftar putih alamat IP yang ditentukan sebagai argumen. Daftar putih diimplementasikan sebagai struktur data peta sehingga alamat IP dapat dengan mudah diberi nilai BENAR Dan PALSU untuk menunjukkan aksesibilitas mereka.

Kemudian fungsinya menggunakan kerangka Gin IP Klien berfungsi untuk mendapatkan alamat IP saat ini dari pengguna yang mencoba membuat permintaan, dan memeriksa apakah ada dalam daftar putih dan dengan a BENAR nilai. Jika tidak ditemukan, atau ditemukan memiliki nilai PALSUmiddleware membatalkan permintaan dan mengembalikan kesalahan 403 (Terlarang).

Contoh titik akhir untuk menguji fungsionalitas ini dapat diterapkan untuk melihat cara kerja daftar putih IP. Kode berikut adalah program yang mendefinisikan daftar putih dan mengimplementasikan dua titik akhir (yang dibatasi dan yang tidak dibatasi).

 package main

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

var IPWhitelist = map[string]bool{
    "127.0.0.1": true,
    "111.2.3.4": true,
    "::1": true,
}

func main() {
    router := gin.Default()

    router.GET("/index", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Welcome to my secure application!",
        })
    })

    restrictedPage := router.Group("https://www.makeuseof.com/")
    restrictedPage.Use(middlewares.IPWhiteListMiddleware(IPWhitelist))

    restrictedPage.GET("/adminZone", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "This endpoint is secured with IP whitelisting!",
        })
    })

    router.Run(":3333")
}

Ketika aplikasi dijalankan dengan jalankan main.goserver dimulai pada port 3333, dan Anda dapat menjalankan permintaan pengujian ke /adminZone titik akhir, untuk melihat cara kerja middleware. Anda juga dapat mengganti nilai IP localhost di antara daftar putih BENAR Dan PALSU.

Berikut adalah contoh permintaan untuk ditampilkan saat alamat IP tidak masuk daftar putih atau saat nilainya dalam daftar putih disetel ke PALSU:

Permintaan pengujian saat alamat IP tidak masuk daftar putih

Inilah permintaan lain ketika alamat IP ada di daftar putih IP dengan nilainya disetel ke BENAR:

Permintaan uji saat alamat IP masuk daftar putih

Anda mungkin mendapatkan respons kesalahan 403 (Terlarang) jika Anda menguji program dengan memasukkan alamat IP localhost generik (127.0.0.1) ke dalam daftar putih. Alamat IP yang kemungkinan besar akan berfungsi secara lokal adalah ::1 yang setara dengan IPv6 dari 127.0.0.1 (Ipv4). Coba daftar putih ::1 jika 127.0.0.1 menolak untuk bekerja, dan Anda juga dapat mencoba mencatatnya userIP variabel di konsol untuk melihat alamat persis yang digunakan.

Mengamankan Aplikasi Web Dengan Daftar Putih IP

Di dunia sekarang ini, keamanan aplikasi dan sistem web sangat penting karena teknologi terus berkembang. Daftar putih IP adalah cara yang sangat sederhana dan efektif untuk membatasi akses ke sumber daya di internet hanya ke sumber tepercaya.

Sejauh ini dalam artikel ini, konsep daftar putih alamat IP telah dibahas secara rinci, kapan menerapkannya, dan bagaimana menerapkannya di Go menggunakan kerangka kerja Gin. Disarankan untuk hanya menerapkan daftar putih IP jika perlu untuk menghindari biaya teknis yang tidak perlu.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

beli jitu https://167.71.217.241/ https://188.166.210.27/ https://103.253.147.8/ https://139.59.194.132/ https://152.42.192.54/ https://152.42.187.123/ https://188.166.196.248/ https://163.47.9.78/ https://157.230.245.144/ http://68.183.96.87/ http://147.182.210.122/ http://147.182.128.234/ http://167.172.1.184/ http://157.245.5.74/ http://139.59.217.59/ http://163.47.9.16/ http://144.126.251.215/ http://139.59.217.128/ http://103.186.0.254/ http://161.35.251.176/ http://157.245.29.71/ https://170.64.254.102/ https://www.markas303.ac.id/ https://www.markas303.or.id/ https://www.markas303.sch.id/ http://103.172.205.75/ http://103.245.38.119/ http://138.197.224.231/ http://138.197.224.231/

Ad

BIJI18 BIJI18 https://goremekoop.com/ AGEN77 3DBET OBOR138 GACOR168JP YING77 RUMAH258 POHONHOKI99 ASALBET88 PARIS128 66KBET LONG111 DESA333 DEWAGACOR89 YING77
https://146.190.200.68/ https://188.166.204.36/