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:
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
- A Wrangler használatának megkezdéséhez: https://developers.cloudflare.com/workers/wrangler/get-started/
- A Workers használatának megkezdéséhez: https://developers.cloudflare.com/workers/get-started/quickstarts/
- A KV Binding-ek beállításához: https://developers.cloudflare.com/workers/runtime-apis/kv/#kv-bindings
Nos, ennyi, remélem, ez a cikk és eszköz segített Önnek.
Ossza meg véleményét!
Hozzászólások