Ma megtanulja, hogyan blokkolhatja a Proxy IP-ket (ingyeneseket) a Cloudflare Workers segítségével ingyen.

Mint már tudja, a Cloudflare kínál Managed Lists szolgáltatást. Ezek csak Enterprise ügyfelek számára érhetők el.

A Managed Lists hatékonyabb, mint amit mi csinálunk itt, de ennek ellenére a módszerünk tisztességes, figyelembe véve, hogy ingyenes.

Bónuszként testreszabhatja a visszaadott “blokkoló” oldalt, hogy egyedi biztonsági megoldásával brillírozzon 😁

Miért blokkoljuk a Proxykat?

Néhányan megkérdezték a másik bejegyzésemnél: “miért a csodában blokkolnád a TOR-t?”. Ugyanúgy, mint a TOR esetében, ezeket a Proxykat mindig visszaélik.

Visszaélik őket több hamis fiók létrehozására, promóciók kihasználására, hackelési kísérletekre, scrapeelésre és még sok másra. Ha komolyan veszi a weboldalát, blokkolnia kell a Proxykat. Különösen, ha például egy kis webáruháza van.

Szeretném megemlíteni azt is, hogy mivel ezeket a Proxykat csalásra, spamre és egyéb dolgokra használják, rossz hírnevük van. A rossz hírnevű IP-kről érkező forgalom árt a SEO-nak .

Ingyenes Proxyk blokkolása

Ahogy a másik cikkemben a TOR blokkolásáról kifejtettem, ez rendkívül hasonló. Van egy workerünk, amely a Proxy IP-ket Workers KV-ban tárolja, és egyszerűen lekérdezzük őket.

Az egyetlen nagy különbség az, hogy nincs specifikus vagy megbízható API-nk ezeknek a Proxy IP-knek a megszerzéséhez, tehát scraipelni vagy letölteni kell őket, ahol tudjuk.

A scrapeelés és a Proxy IP listák letöltésének kombinációjával teljesen ingyen elérhetjük ezt a célt (nos, majdnem ingyen).

Service worker

Készítettem egy azonnal használható workert az Githubon .

Mindössze annyit kell tennie, hogy klónozza, konfigurálja a követelményeket és közzéteszi.

Egyszerű konfiguráció

A worker beállításához kérjük, olvassa el a másik cikkemet (mert nem akarom duplikálni a tartalmat):

A worker 10 percenként fut, ha változtatni szeretne ezen, egyszerűen szerkessze a wrangler.toml fájlt.

A hosszabb időszakok csökkentik a havi Workers használatot, de nem lesznek olyan hatékonyak, mert ezek az ingyenes Proxy IP listák átlagosan körülbelül 10 percenként frissülnek.

Ajánlott a listát a lehető leggyakrabban frissíteni, hogy az ingyenes Proxyk visszaélőit elkapjuk.

Egyszerű használat

Pontosan úgy, ahogy a TOR blokkolásáról szóló másik bejegyzésemben, a használat ugyanaz. Azzal a különbséggel, hogy a KV névtér most PROXIES_COMBINED_LIST neve, és a cache mindössze 2 percre van beállítva.

Alább egy egyszerű indító szkript, amelyet egyszerűen másolhat és beilleszthet egy új vagy meglévő workerbe:

 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}

Tesztelés

Mint a másik bejegyzésnél (ismét, nem akarom duplikálni a tartalmat), adok egy egyszerű, azonnal használható indító workert:

 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}

Ne felejtse el hozzáadni a KV Binding-et ehhez a workerhez.

A fenti worker telepítésével elindítjuk a Chrome-ot, szerezünk egy ingyenes proxyt, konfiguráljuk a Proxy SwitchyOmega bővítményt és teszteljük:

Block Proxy Result

Ahogy láthatja, pontosan az elvártaknak megfelelően működik. A Proxy IP-k blokkolva vannak, legalábbis az ingyenesek, amelyeket meg tudtunk találni.

Fontos megjegyezni, hogy a fizetős proxyk nincsenek blokkolva, mivel nincs hozzáférésünk hozzájuk, de ha hajlandó előfizetni rájuk, megteheti.

De azt is fontos tudni, hogy további weboldalakat/API-kat adhat hozzá a scrapeeléshez és letöltéshez.

Költségek

A másik bejegyzésemben kifejtettem a ezekben a workerekben használt stratégiát a költségek lehető legnagyobb minimalizálására, ez a worker sem különbözik.

Azonban mivel a listát gyakrabban kell frissítenünk, a használat a következőre változik: 6 WRITE x 24 ÓRA = 144 WRITE naponta, ami 4464 WRITE-ot jelent 31 nap alatt.

Sajnos ez nem elég ahhoz, hogy “beleférjen” a Workers ingyenes limitjébe, ezért erősen javaslom, hogy fektessen be havi 5$-t a frissítésbe. Ezután 1.000.000 (egymillió) WRITE limitje lesz.

Ha nem szívesen teszi ezt, fel kell áldoznia a használatot, és el kell döntenie, hogy csak a TOR-t vagy a Proxykat szeretné blokkolni. A TOR blokkolása már “belefér” az ingyenes limitbe, de a Proxyk nem; tehát a proxyk cron idejét 10 percről 1 órára kell módosítania.

Ismét erősen ajánlom a frissítést, hogy mindkét workert használhassa.

Hasznos linkek

Nos, ennyi, remélem, ez a cikk és eszköz segített Önnek.

Ossza meg véleményét!