ستتعلم اليوم كيفية حظر عناوين IP الخاصة بالوكيل (المجانية) باستخدام Cloudflare Workers مجانًا.

كما تعلم بالفعل الآن ، تقدم Cloudflare القوائم المدارة . هذه متاحة فقط لعملاء المؤسسة.

القوائم المُدارة الخاصة بهم أكثر فاعلية مما نقوم به هنا ، ولكن مع ذلك فإن طريقتنا لائقة بالنظر إلى أنها مجانية.

للحصول على مكافأة إضافية ، يمكنك تخصيص صفحة “الحظر” التي تم إرجاعها لتتمتع بأمان مخصص 😁

لماذا حظر البروكسيات؟

لقد تم استجوابي في رسالتي الأخرى من قبل بعض الأشخاص مثل “لماذا بحق السماء تقوم بحظر TOR؟”. كما هو الحال مع TOR ، يتم دائمًا إساءة استخدام هذه البروكسيات.

يتم إساءة معاملتهم لإنشاء حسابات مزيفة متعددة ، وإساءة استخدام العروض الترويجية ، ومحاولة القرصنة ، والكشط ، وغير ذلك الكثير. إذا كنت جادًا بشأن موقع الويب الخاص بك ، فيجب عليك حظر البروكسيات. خاصة إذا كان لديك محل تجاري صغير على سبيل المثال.

أود أيضًا أن أذكر أنه نظرًا لاستخدام هذه البروكسيات في عمليات الاحتيال والبريد العشوائي وأشياء أخرى ، فإنها تتمتع بسمعة سيئة. الزيارات القادمة من عناوين IP سيئة السمعة تضر بمحسنات محركات البحث الخاصة بك .

حظر البروكسيات المجانية

كما هو موضح في مقالتي الأخرى حول حظر TOR ، هذا مشابه للغاية. لدينا عامل يقوم بتخزين Proxy IP’s في Workers KV ويمكنك ببساطة الاستعلام عنها.

الاختلاف الرئيسي الوحيد هو أنه ليس لدينا واجهة برمجة تطبيقات محددة أو موثوقة للحصول على عناوين IP الخاصة بهذه البروكسي ، لذلك يجب علينا التخلص منها أو تنزيلها حيثما أمكن ذلك.

باستخدام مزيج من كشط وتنزيل قوائم Proxy IP ، يمكننا تحقيق هذا الهدف مجانًا تمامًا (جيدًا ، مجاني تقريبًا).

عامل الخدمة

لقد أعددت عامل جاهز للاستخدام من أجلك على Github .

كل ما عليك فعله هو استنساخه وتكوين المتطلبات ونشره.

تكوين سهل

لإعداد هذا العامل ، يرجى الرجوع إلى مقالتي الأخرى (لأنني لا أريد تكرار المحتوى):

تم تكوين العامل للعمل كل 10 دقائق ، إذا كنت تريد تغيير هذا ، فقم فقط بتحرير wrangler.toml.

ستؤدي الفترات الأطول إلى تقليل استخدام العمال الشهري ، ولكنها لن تكون فعالة لأن قوائم IP الوكيل المجانية هذه يتم تحديثها بحوالي 10 دقائق في المتوسط.

يوصى بتحديث القائمة قدر الإمكان لضمان القبض على من يسيئون استخدام البروكسيات المجانية.

سهولة الاستخدام

تمامًا كما نفعل ذلك في رسالتي الأخرى حول حظر TOR ، فإن الاستخدام هو نفسه. مع اختلاف أن مساحة اسم KV تسمى الآن PROXIES_COMBINED_LIST وذاكرة التخزين المؤقت مضبوطة على دقيقتين فقط.

أسفل نص بسيط للمبتدئين يمكنك ببساطة نسخه ولصقه في عامل جديد أو موجود:

 1const clientIP = request.headers.get('CF-Connecting-IP');
 2const ipset = await PROXIES_COMBINED_LIST.get("ipset", { type: "json", cacheTtl: 120 });
 3
 4if (ipset[clientIP]) 0
 5{
 6return new Response("Proxies are Forbidden", { 
 7  headers: {
 8	'content-type': 'text/html;charset=UTF-8',
 9  },
10  status: 403
11});
12}

Testing

تمامًا مثل المنشور الآخر (مرة أخرى ، لا أرغب في تكرار المحتوى) ، أقدم لك وسيلة بسيطة جاهزة لاستخدام عامل المبتدئين:

 1addEventListener("fetch", event => {
 2  event.respondWith(handleRequest(event.request))
 3})
 4
 5const html = `<!doctype html>
 6<html lang="en">
 7  <head>
 8    <title>Access Denied</title>
 9    <meta charset="utf-8">
10    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
11    <meta name="robots" content="noindex, nofollow" />
12    <meta name="viewport" content="width=device-width, initial-scale=1">
13    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> 
14  </head>
15  <body>
16    <div class="container">
17      <h1 class="mt-5 text-center">Oops!</h1>
18      <h2 class="mt-2 text-center text-danger">Proxies are not allowed.</h2>
19    </div>
20  </body>
21</html>`;
22
23async function handleRequest(request) 
24{
25  const clientIP = request.headers.get('CF-Connecting-IP');
26  const ipset = await PROXIES_COMBINED_LIST.get("ipset", { type: "json", cacheTtl: 120 });
27  
28  if (ipset[clientIP]) 
29  {
30    return new Response(html, { 
31      headers: {
32        'content-type': 'text/html;charset=UTF-8',
33      },
34      status: 403
35    });
36  }
37
38  const response = await fetch(request);
39
40  return response;
41}

لا تنس إضافة ربط KV لهذا العامل.

مع نشر العامل أعلاه ، قمنا بتشغيل Chrome ، والحصول على وكيل مجاني ، وتهيئة Proxy SwitchyOmega واختبار :

Block Proxy Result

كما ترى ، يعمل تمامًا كما هو متوقع. تم حظر عنوان IP الوكيل ، حسنًا على الأقل تلك المجانية التي يمكن أن نجدها.

من المهم ملاحظة أنه لا يتم حظر الوكلاء المدفوعين لأننا لا نتمكن من الوصول إليهم ، ولكن إذا كنت على استعداد للاشتراك فيها ، يمكنك القيام بذلك.

ولكن من المهم أيضًا معرفة أنه يمكنك إضافة المزيد من مواقع الويب / واجهات برمجة التطبيقات لتتخلص منها وتنزيلها.

التكاليف

في رسالتي الأخرى ، أوضحت الإستراتيجية المستخدمة في هؤلاء العمال لتقليل التكاليف قدر الإمكان ، هذا العامل لا يختلف.

ومع ذلك ، نظرًا لحقيقة أننا بحاجة إلى تحديث القائمة في كثير من الأحيان ، يتغير الاستخدام إلى: 6 WRITE (s) x 24 HOUR (s) = 144 WRITE (s) في اليوم ، وينتهي الأمر بـ 4464 WRITE (s) لكل 31 أيام).

لسوء الحظ ، هذا لا يكفي “للتوافق” مع الحد المجاني للعمال ، لذلك أقترح بشدة أن تستثمر 5 دولارات شهريًا للترقية. سيكون لديك بعد ذلك 1،000،000 (مليون) WRITE (s) كحد أقصى.

إذا لم تكن سعيدًا للقيام بذلك ، فيجب عليك التضحية بالاستخدام وتحديد ما إذا كنت ترغب في حظر TOR أو Proxies فقط. إن حظر TOR بالفعل “يناسب” الحدود المجانية ، لكن البروكسيات لن تكون كذلك ؛ لذلك ستحتاج إلى تغيير وقت cron إلى ساعة واحدة من 10 دقائق للوكلاء.

مرة أخرى ، أوصيك بشدة بالترقية حتى تتمكن من استخدام كلا العاملين.

روابط مفيدة

حسنًا ، هذا كل شيء ، آمل أن تساعدك هذه المقالة والأداة.

دعني ارى آراءك!