Heute lernen Sie, wie Sie Proxy-IPs (kostenlose) mit Cloudflare Workers kostenlos blockieren können.

Wie Sie mittlerweile wissen, bietet Cloudflare Managed Lists an. Diese sind nur für Enterprise-Kunden verfügbar.

Ihre Managed Lists sind effektiver als das, was wir hier tun, aber dennoch ist unsere Methode anständig, wenn man bedenkt, dass sie kostenlos ist.

Als zusätzlichen Bonus können Sie die zurückgegebene “Blocking”-Seite anpassen, um mit Ihrer benutzerdefinierten Sicherheit zu glänzen 😁

Warum Proxys blockieren?

Ich wurde in meinem anderen Beitrag von einigen Leuten gefragt: “Warum um Himmels Willen würden Sie TOR blockieren?”. Genau wie bei TOR werden diese Proxys ständig missbraucht.

Sie werden missbraucht, um mehrere gefälschte Konten zu erstellen, Werbeaktionen zu missbrauchen, Hacking-Versuche zu unternehmen, zu scrapen und vieles mehr. Wenn Sie Ihre Website ernst nehmen, sollten Sie Proxys blockieren. Besonders wenn Sie beispielsweise einen kleinen Online-Shop haben.

Ich möchte auch erwähnen, dass diese Proxys, weil sie für Betrug, Spam und andere Dinge verwendet werden, einen schlechten Ruf haben. Traffic von IPs mit schlechtem Ruf schadet Ihrem SEO .

Kostenlose Proxys blockieren

Wie in meinem anderen Artikel über das Blockieren von TOR erklärt, ist dies extrem ähnlich. Wir haben einen Worker, der Proxy-IPs in Workers KV speichert und Sie sie einfach abfragen.

Der einzige große Unterschied besteht darin, dass wir keine spezifische oder zuverlässige API haben, um diese Proxy-IPs zu erhalten, also müssen wir sie scrapen oder herunterladen, wo wir können.

Mit einer Kombination aus Scraping und Herunterladen von Proxy-IP-Listen können wir dieses Ziel völlig kostenlos erreichen (nun ja, fast kostenlos).

Service Worker

Ich habe einen sofort einsatzbereiten Worker für Sie auf Github vorbereitet.

Alles, was Sie tun müssen, ist es zu klonen, die Anforderungen zu konfigurieren und zu veröffentlichen.

Einfache Konfiguration

Um diesen Worker einzurichten, lesen Sie bitte meinen anderen Artikel (da ich Inhalte nicht duplizieren möchte):

Der Worker ist so konfiguriert, dass er alle 10 Minuten läuft. Wenn Sie dies ändern möchten, bearbeiten Sie einfach wrangler.toml.

Längere Perioden reduzieren Ihre monatliche Workers-Nutzung, sind aber nicht so effektiv, da diese kostenlosen Proxy-IP-Listen durchschnittlich etwa alle 10 Minuten aktualisiert werden.

Es wird empfohlen, die Liste so oft wie möglich zu aktualisieren, um sicherzustellen, dass Missbraucher kostenloser Proxys erwischt werden.

Einfache Nutzung

Genau wie in meinem anderen Beitrag über das Blockieren von TOR ist die Nutzung gleich. Mit dem Unterschied, dass der KV-Namespace jetzt PROXIES_COMBINED_LIST heißt und der Cache auf nur 2 Minuten eingestellt ist.

Unten ein einfaches Starter-Skript, das Sie einfach kopieren und in einen neuen oder bestehenden Worker einfügen können:

 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", {
 7headers: {
 8'content-type': 'text/html;charset=UTF-8',
 9},
10status: 403
11});
12}

Testen

Wie beim anderen Beitrag (auch hier möchte ich Inhalte nicht duplizieren), gebe ich Ihnen einen einfachen sofort einsatzbereiten Starter-Worker:

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

Vergessen Sie nicht, das KV-Binding zu diesem Worker hinzuzufügen.

Mit dem oben bereitgestellten Worker starten wir Chrome, holen uns einen kostenlosen Proxy, konfigurieren Proxy SwitchyOmega und testen:

Block Proxy Result

Wie Sie sehen können, funktioniert es genau wie erwartet. Proxy-IPs werden blockiert, zumindest die kostenlosen, die wir finden konnten.

Es ist wichtig zu beachten, dass bezahlte Proxys nicht blockiert werden, da wir keinen Zugang zu ihnen haben, aber wenn Sie bereit sind, sie zu abonnieren, können Sie dies tun.

Aber es ist auch wichtig zu wissen, dass Sie mehr Websites/APIs zum Scrapen und Herunterladen hinzufügen können.

Kosten

In meinem anderen Beitrag habe ich die Strategie erklärt, die in diesen Workern verwendet wird, um die Kosten so weit wie möglich zu minimieren, und dieser Worker ist nicht anders.

Aufgrund der Tatsache, dass wir die Liste häufiger aktualisieren müssen, ändert sich die Nutzung jedoch auf: 6 WRITE(s) x 24 STUNDE(N) = 144 WRITE(s) pro Tag, was 4464 WRITE(s) pro 31 Tag(e) ergibt.

Leider reicht das nicht aus, um in das kostenlose Limit der Workers zu “passen”, daher empfehle ich dringend, 5$/Monat für ein Upgrade zu investieren. Sie haben dann ein Limit von 1.000.000 (eine Million) WRITE(s).

Wenn Sie das nicht möchten, müssen Sie die Nutzung opfern und entscheiden, ob Sie nur TOR oder Proxys blockieren möchten. Das Blockieren von TOR passt bereits in die kostenlosen Limits, aber Proxys nicht; Sie müssten also die Cron-Zeit für Proxys von 10 Minuten auf 1 Stunde ändern.

Nochmals, ich empfehle dringend ein Upgrade, damit Sie beide Worker nutzen können.

Das war’s, ich hoffe, dieser Artikel und dieses Tool haben Ihnen geholfen.

Lassen Sie mich Ihre Meinung wissen!