استفد من Go's Gin framework لتأمين تطبيقات الويب الخاصة بك من خلال القائمة البيضاء لعناوين IP.
في عالم تكنولوجيا الإنترنت الحديث ، أهمية ضمان أمان تطبيقات الويب والخوادم لا يمكن المبالغة في تقديرها مع استمرار تكرار الهجمات الإلكترونية وتعقيدها تصعد. لهذا السبب ، تزداد أيضًا الحاجة إلى اتخاذ تدابير أمنية قوية ومتطورة للأنظمة المستندة إلى الويب.
تعد القائمة البيضاء لعناوين IP إحدى التقنيات الحديثة العديدة لتأمين تطبيقات الويب والخوادم وواجهات برمجة التطبيقات. على الرغم من أنه تستخدم فقط في بعض الحالات المحددة ، وهي طريقة موصى بها لضمان تقييد الوصول إلى الموارد على الإنترنت عندما ضروري.
ما هي القائمة البيضاء IP؟
القائمة البيضاء لعناوين IP هي ببساطة ملف نوع القائمة البيضاء التي يمكن الإشارة إليها على أنها تدبير أمان الويب المستخدم لتقييد الوصول إلى شبكة أو مورد إلى عنوان IP محدد أو نطاق من عناوين IP يعتبر مصرحًا له بالوصول إلى النظام.
عند تنفيذ القائمة البيضاء لعناوين IP في نظام ما ، فإن عناوين IP التي تمت إضافتها إلى القائمة البيضاء هي فقط القادرة على الوصول إلى النظام والموارد الموجودة عليه ، بينما يتم حظر عناوين IP الأخرى.
تعد القائمة البيضاء لعناوين IP طريقة شائعة جدًا لتأمين البيانات الهامة للغاية والتي يجب أن تكون متاحة فقط لفرد أو لمجموعة معينة من الأشخاص ، ومحمية من أي محاولة قرصنة.
مثال شائع لقائمة IP البيضاء في MongoDB Atlas حيث أنت إعداد مجموعة قاعدة بيانات Mongo في السحابة وستتم مطالبتك بإضافة عنوان IP الحالي الخاص بك إلى قائمة بحيث لا يُسمح بالطلبات إلى قاعدة البيانات أو المجموعة إلا عندما تأتي من جهاز الكمبيوتر الخاص بك.
متى يجب تطبيق القائمة البيضاء IP؟
القائمة البيضاء لعناوين IP ليست شيئًا يحتاجه كل نظام أو تطبيق. هناك حالات يوصى فيها ويكون مناسبًا لتنفيذه في تطبيق أو نظام. فيما يلي بعض الأمثلة على السيناريوهات التي يجب أن تفكر فيها في تنفيذ قائمة IP البيضاء.
- عندما يكون التطبيق مخصصًا للاستخدام فقط من قبل مجموعة معينة من المستخدمين ، مثل الموظفين أو العملاء في شركة معينة.
- عندما تريد أن يكون التطبيق متاحًا فقط من موقع معين ، يمكنك إدراج مجموعة من عناوين IP الخاصة بهذا الموقع في القائمة البيضاء فقط.
- عندما يتم استخدام التطبيق لتوفير الوصول إلى المعلومات السرية أو الملكية الفكرية ، مثل قاعدة بيانات البحث أو البرامج الاحتكارية.
- عندما يكون التطبيق خاصًا ولكن يمكن الوصول إليه عبر الإنترنت ويحتاج إلى الحماية من التهديدات الخارجية ، مثل هجمات DDoS أو إصابات البرامج الضارة.
- عندما يتم استضافة التطبيق على منصة سحابية عامة ويحتاج إلى الحماية من الوصول غير المصرح به من قبل مستأجرين آخرين أو مستخدمي النظام الأساسي.
- عند استخدام التطبيق في صناعة منظمة ، مثل الرعاية الصحية أو التمويل ، حيث يلزم الامتثال لمعايير الأمان.
هناك العديد من الحالات الأخرى ، ولكن بشكل أساسي ، كلما احتوى تطبيق ما على أي من الخصائص المذكورة أعلاه ، يجب أن تفكر في تنفيذ قائمة IP البيضاء.
كيفية تنفيذ القائمة البيضاء IP في Go
Go هي لغة برمجة حديثة شائعة لبناء خوادم الويب وواجهات برمجة التطبيقات مجمعة مع كل ما تحتاجه لإنشاء تطبيق ويب قياسي وآمن.
يوضح هذا القسم استخدام Go’s Gin framework لتنفيذ خادم العينة ومنطق القائمة البيضاء لعنوان IP وهي وظيفة وسيطة. يمكنك تثبيت إطار عمل Gin في مشروع عن طريق تشغيل الأمر التالي.
اذهب للحصول على github.com/gin-gonic/gin
بعد تثبيت إطار عمل Gin ، يمكنك الآن المضي قدمًا في تنفيذ البرامج الوسيطة لقائمة IP البيضاء. يمكنك إنشاء ملف وسيط جديد في أي مكان في مشروعك ، اعتمادًا على بنية مشروعك. فيما يلي تنفيذ وظيفة البرامج الوسيطة:
طَرد ادوار وسيطة
يستورد (
"github.com/gin-gonic/gin"
"net / http"
)funcIPWhiteListMiddleware(القائمة البيضاء خريطة[خيط]منطقي)شرك.المعالج {
يعودfunc(ج * الجن. سياق) {
userIP: = ج. ClientIP ()
لو! القائمة البيضاء [userIP] {
ج. AbortWithStatusJSON (http. الوضع ممنوع ، الجن. ح {
"خطأ": "أنت غير مصرح لك للوصول إلى هذا المورد!",
})
} آخر {
ج. التالي()
}
}
}
في الكود أعلاه ، IPWhiteListMiddleware يتم تعريف الوظيفة لقبول القائمة البيضاء لعنوان IP المحدد كوسيطة. يتم تنفيذ القائمة البيضاء كهيكل بيانات خريطة بحيث يمكن بسهولة تعيين قيم لعناوين IP حقيقي و خطأ شنيع للإشارة إلى إمكانية الوصول إليها.
ثم تستخدم الوظيفة إطار عمل Gin ClientIP وظيفة للحصول على عنوان IP الحالي للمستخدم الذي يحاول تقديم الطلب ، والتحقق مما إذا كان موجودًا في القائمة البيضاء ومع حقيقي قيمة. إذا لم يتم العثور عليه ، أو وجد أن له قيمة خطأ شنيع، تقوم البرامج الوسيطة بإلغاء الطلب وإرجاع الخطأ 403 (ممنوع).
يمكن تنفيذ نموذج نقطة نهاية لاختبار هذه الوظيفة لمعرفة كيفية عمل القائمة البيضاء لعنوان IP. الكود التالي هو برنامج يعرّف القائمة البيضاء وينفذ نقطتي نهاية (واحدة مقيدة والأخرى غير مقيدة).
طَرد رئيسي
يستورد (
"github.com/gin-gonic/gin"
"go-ip-whitelist / middlewares"
"net / http"
)فار IPWhitelist = خريطة[خيط]منطقي{
"127.0.0.1": حقيقي,
"111.2.3.4": حقيقي,
"::1": حقيقي,
}funcرئيسي() {
جهاز التوجيه: = الجن. تقصير()جهاز التوجيه. يحصل("/فِهرِس", func(ج * الجن. سياق) {
ج. JSON (http. موافق ، الجن. ح {
"رسالة": "مرحبًا بك في تطبيقي الآمن!",
})
})مقيد الصفحة: = جهاز التوجيه. مجموعة("/")
مقيدالصفحة. استخدم (middlewares. IPWhiteListMiddleware (IPWhitelist))مقيدالصفحة. يحصل("/ adminZone", func(ج * الجن. سياق) {
ج. JSON (http. موافق ، الجن. ح {
"رسالة": "تم تأمين نقطة النهاية هذه بقائمة 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. يوصى بتنفيذ القائمة البيضاء لعناوين IP فقط عند الاقتضاء لتجنب التكاليف الفنية غير الضرورية.