علي الكاسر نشر 21 فبراير 2023 أرسل تقرير نشر 21 فبراير 2023 لا اعتمد على اطر العمل مثل لا رافل ولا احب المكتبات الخارجيه، لذاك يمكنني اعمل نظام Rate Limit في لغة php بنفسي اقتباس
0 Sam Ahw نشر 21 فبراير 2023 أرسل تقرير نشر 21 فبراير 2023 من الأفضل استخدام Redis كذاكرة مؤقتة لحفظ عناوين IP المستخدمين دون التأثير على بنية الموقع لديك، ويمكنك استخدام الشيفرة التالية كمثال: <?php //الاتصال بخادم redis $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('REDIS_PASSWORD'); $max_calls_limit = 3; // العدد الأعظمي للطلبات خلال وقت محدد $time_period = 10; // نافذة الوقت (الوقت اللازم لإعادة الحساب) $total_user_calls = 0; // إجمالي عدد الطلبات من نفس المستخدم // للحصول على عنوان المستخدم من الممكن أن يكون ضمن 3 أماكن في الطلب الذي يتم استقباله if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $user_ip_address = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $user_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $user_ip_address = $_SERVER['REMOTE_ADDR']; } //التحقق في حال كان عنوان المستخدم جديد وغير موجود في الذاكرة if (!$redis->exists($user_ip_address)) { $redis->set($user_ip_address, 1); $redis->expire($user_ip_address, $time_period); $total_user_calls = 1; } else { $redis->INCR($user_ip_address); $total_user_calls = $redis->get($user_ip_address); if ($total_user_calls > $max_calls_limit) { echo "User " . $user_ip_address . " limit exceeded."; exit(); } } يمكنك مراجعة التوثيق الرسمي لـ Redis وقراءة الأوامر وطرق التثبيت والمزيد من التفاصيل. أو البحث على الانترنت عن تثبيت Redis ضمن نظام التشغيل الموجود لديك في بيئة الاستضافة. اقتباس
0 علي الكاسر نشر 21 فبراير 2023 الكاتب أرسل تقرير نشر 21 فبراير 2023 بتاريخ 38 دقائق مضت قال Sam Ahw: من الأفضل استخدام Redis كذاكرة مؤقتة لحفظ عناوين IP المستخدمين دون التأثير على بنية الموقع لديك، ويمكنك استخدام الشيفرة التالية كمثال: <?php //الاتصال بخادم redis $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('REDIS_PASSWORD'); $max_calls_limit = 3; // العدد الأعظمي للطلبات خلال وقت محدد $time_period = 10; // نافذة الوقت (الوقت اللازم لإعادة الحساب) $total_user_calls = 0; // إجمالي عدد الطلبات من نفس المستخدم // للحصول على عنوان المستخدم من الممكن أن يكون ضمن 3 أماكن في الطلب الذي يتم استقباله if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $user_ip_address = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $user_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $user_ip_address = $_SERVER['REMOTE_ADDR']; } //التحقق في حال كان عنوان المستخدم جديد وغير موجود في الذاكرة if (!$redis->exists($user_ip_address)) { $redis->set($user_ip_address, 1); $redis->expire($user_ip_address, $time_period); $total_user_calls = 1; } else { $redis->INCR($user_ip_address); $total_user_calls = $redis->get($user_ip_address); if ($total_user_calls > $max_calls_limit) { echo "User " . $user_ip_address . " limit exceeded."; exit(); } } يمكنك مراجعة التوثيق الرسمي لـ Redis وقراءة الأوامر وطرق التثبيت والمزيد من التفاصيل. أو البحث على الانترنت عن تثبيت Redis ضمن نظام التشغيل الموجود لديك في بيئة الاستضافة. يعني هذا $redis = new Redis(); مكتبه او اطار عمل او ماذا بالضبط اقتباس
0 Sam Ahw نشر 21 فبراير 2023 أرسل تقرير نشر 21 فبراير 2023 بتاريخ الآن قال علي الكاسر: يعني هذا $redis = new Redis(); مكتبه او اطار عمل او ماذا بالضبط Redis هو ليس مكتبة ولا إطار عمل، بل تقنية برمجية أشبه بقاعدة بيانات ضمن الذاكرة، مفيد جداً في بعض الحالات التي نحتاج من خلالها لتخزين بعض القيم بشكل مؤقت دون التأثير على عمل التطبيق ولتجنّب التأخير الذي قد يحصل في حال استخدام قاعدة البيانات الأساسية المستخدمة مع موقع الويب. يمكنك الاطلاع عليها من هذا الفيديو: أو من القسم الخاص بـ Redis ضمن أكاديمية حسوب على الرابط التالي: https://academy.hsoub.com/devops/servers/databases/redis/ اقتباس
0 علي الكاسر نشر 21 فبراير 2023 الكاتب أرسل تقرير نشر 21 فبراير 2023 هل برأيك ستعمل على الإستضافات او هاتف اندويد اقتباس
0 Sam Ahw نشر 21 فبراير 2023 أرسل تقرير نشر 21 فبراير 2023 بتاريخ 4 ساعة قال علي الكاسر: هل برأيك ستعمل على الإستضافات او هاتف اندويد لم أفهم ما علاقة الهاتف بالضبط في سؤالك، كون التقنية التي نتحدث عنها في طرف خادم الويب ولا علاقة لها بمستخدم الموقع. ولكن بشكل عام معظم استضافات مواقع الويب توفّر دعم لـ Redis أو يمكنك التواصل مع الدعم الفني أو الاطلاع على التوثيق الخاص بالاستضافة التي لديك معرفة طرق التثبيت. اقتباس
0 علي الكاسر نشر 22 فبراير 2023 الكاتب أرسل تقرير نشر 22 فبراير 2023 بتاريخ 19 ساعة قال Sam Ahw: لم أفهم ما علاقة الهاتف بالضبط في سؤالك، كون التقنية التي نتحدث عنها في طرف خادم الويب ولا علاقة لها بمستخدم الموقع. ولكن بشكل عام معظم استضافات مواقع الويب توفّر دعم لـ Redis أو يمكنك التواصل مع الدعم الفني أو الاطلاع على التوثيق الخاص بالاستضافة التي لديك معرفة طرق التثبيت. استخدم هاتف الاندرويد كخادم محلي اختبر عليه الموقع ويوجد تطبيق تيرمكس وهو شبيه بنظام لينكس من خلاله يتم تحميل الحزم والخوادم اقتباس
السؤال
علي الكاسر
لا اعتمد على اطر العمل مثل لا رافل ولا احب المكتبات الخارجيه، لذاك يمكنني اعمل نظام Rate Limit في لغة php بنفسي
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.