Sigurno vam se u zadnje vrijeme dogodilo da ste prilikom pristupa nekoj web lokaciji primijetili poruku da je u tijeku provjera je li vaš pristup toj lokaciji siguran, i kako tu provjeru provodi sustav pod nazivom Cloudflare. Nešto kao „Checking if the site connection is secure“.
Takvu provjeru mogli ste primijetiti na web lokacijama za koje znate da su u domaćem vlasništvu, ali i na web lokacijama u stranom vlasništvu, što uključuje neke od najpoznatijih svjetskih tvrtki. Na primjer: IKEA, PepsiCo, JP Morgan Chase, Microsoft, IBM i brojni drugi s različitih područja ljudskog djelovanja. Između ostalog, i najpoznatiji AI divovi kao što su OpenAI ili Anthropic. Ako tvrtke koje proizvode najnapredniji AI softver na svijetu štiti „tamo neki“ Cloudflare (a ne da one same razviju slično rješenje), onda je to svakako tema za dobru priču u VIDI-ju.
Istaknimo na ovom mjestu kako po provedenim istraživanjima trenutačno oko 20% svih aktivnih web lokacija štiti upravo Cloudflare. Znači, svaka peta web lokacija na svijetu ima veze s ovim sustavom, što je po svim kriterijima jednostavno ogromna brojka! Pri tome treba dodatno uzeti u obzir kako ostalih 80% posto sustava ne štiti netko drugi, nego veliki dio tog postotka uopće nije zaštićen nekim rješenjem. To znači da Cloudflare ima ogroman potencijal za dodatni rast, kao trenutačno najraširenije rješenje na ovom području.
Prije nego nastavimo s tekstom moramo naglasiti jedan važan detalj u vezi s pratećim slikama uz tekst. Da biste mogli vidjeti kako Cloudflare zbilja funkcionira, onda je to najbolje prikazivati na web lokacijama koje su stvarno već neko vrijeme pod takvom zaštitom. Ako spojite neku potpuno novu lokaciju s Cloudflareom, onda tu neće imati baš puno toga za prikazati jednostavno zato što prema novoj stranici ne postoji nekakav relevantan promet za analizu.
Zbog toga će slike priložene uz tekst biti preuzete iz sustava koji su već neko vrijeme stvarno povezani s Cloudflareovim rješenjima uz dozvolu vlasnika, ali će podaci koji bi mogli ukazati na stvarnog vlasnika (ili još gore, pomoći da se probijete kroz Cloudflareovu zaštitu na takvoj web lokaciji) biti zacrnjeni na slici. Nešto slično kao kad CIA ili Pentagon ili neka treća služba deklasificiraju tajne dokumente da bi oni postali dostupni javnosti. Zadnji takav vrlo poznati slučaj dogodio se kad je američki Kongres tražio objavu bilježaka sa susretima s NLO objektima.
Ono što je smiješno je to da su takvi dokumenti često preko 50% (ili čak puno više) i dalje „zacrnjeni“, pa se ne vidi što je na njima, ali su sad kao javno dostupni. Obećajemo da ćemo u ovom slučaju sakriti samo minimum podataka preko kojih bi se mogla identificirati neka tvrtka, dok će sve ostalo biti vidljivo.
Na početku današnjeg teksta prvo ćemo predstaviti glavne karakteristike sustava (a vidjet ćete, ima ih zbilja podosta), a onda na konkretnim primjerima prikazati kako se stvarno koriste.
https://www.cloudflare.com/ : Početna adresa za prijavu na sustav i povezivanje vlastite web lokacije s Cloudflareom
Cloudflare verzije: Na raspolaganju su četiri kategorije: Free, Pro, Business i Contract
Što je točno Cloudflare?
U odnosu na to kako je započeo svoj put, Cloudflare danas nudi mnogo više mogućnosti na više područja. Cloudflare je u stvari nastao kao rezultat pobjede na Harvardovom natjecanju poslovnih planova studenata (Matthew Prince i Michelle Zatlyn). Na temelju te ideje i uključivanjem trećeg suosnivača (Lee Holloway) kao glavnog arhitekta sustava, 2009. godine je službeno nastala tvrtka Cloudflare.
Na samom početku tvrtka se prije svega bavila distribucijom statičnih sadržaja kao što su slike, CSS i JavaScript s geografski najbližeg servera, to jest, nečim poznatim kao CDN (Content Delivery Network), ali ujedno zaštitom takvih sadržaja pred vanjskim napadima.
Od tada do danas ta početna ponuda se razgranala u različitim smjerovima, što je ujedno važan razlog zbog kojeg je Cloudflare tako popularan. Korisnicima je trenutačno na raspolaganju pet ključnih kategorija korištenja:
Sigurnost i ubrzanje stranica
Cloudflare danas nudi pohranu statičkog sadržaja s preko 300 čvorova „razbacanih“ diljem svijeta, kako bi se postiglo njihovo što brže učitavanje za bilo koju geografsku lokaciju. Pri tome se za te lokacije podrazumijeva odgovarajuće upravljanje neophodnim sigurnosnim certifikatima. Takvi sadržaji, odnosno pripadajući čvorovi također su zaštićeni pred DDoS (Distributed Denial of Service) napadima uz istovremeno korištenje naprednih vatrozida za zaštitu pred različitim vrstama napada. Na primjer, SQLi (SQL Injection) ili XSS (Cross-Site Scripting) napadi. U današnjem AI svijetu u zaštitu sadržaja uključeno je i vrlo važno upravljanje/blokiranje AI botova.
Korištenje kao razvojne platforme
Danas Cloudflare više nije samo platforma za objavu statičnih sadržaja, nego se pomoću nje može izvoditi i prilično ozbiljan razvoj vlastitih web rješenja uz određeno prilagođavanje podržanim razvojnim tehnologijama. To obuhvaća pokretanje JavaScript/WASM koda izravno na Cloudflare poslužiteljima (preko takozvanih Workers stranica), korištenje posebnih baza podataka kao što su KV ili D1 (to ćemo demonstrirati na odgovarajućem primjeru) te dodatnu mogućnost spremanja različitih objekata (kompatibilnu s AWS S3).
Primjena u okviru korporativne sigurnosti
U okviru ovog dijela predstavlja alternativu za VPN, filtriranje internetskog prometa zaposlenika radi blokiranja zlonamjernih stranica, phishinga i sličnog, pa čak i pokretanje potencijalno opasnih stranica u posebnim izoliranim okruženjima. Tako se dodatno sprečava mogućnost širenja zlonamjernog softvera po zaštićenoj tvrtki.
Mrežne usluge
U ovaj dio je osim već ranije spomenute DDoS zaštite uključeno povezivanje privatnih podatkovnih centara s Cloudflare mrežom, kao i usmjeravanje prometa zaobilaznim putevima, ako se primijete zagušenja na uobičajenim putovima na internetu.
Usluge za krajnje korisnike
U ovaj dio usluga uključeno je korištenje jednog od najbržih DNS resolvera na svijetu te WARP aplikacije. Riječ je o besplatnoj aplikaciji za mobitele i druge vrste računala utemeljenoj na WireGuard protokolu. Aplikacija je namijenjena za kriptiranje, odnosno ubrzavanje cjelokupnog internetskog prometa uređaja.
Konkretni primjeri u nastavku teksta prije svega će biti povezani s prvim dvjema kategorijama, jer se one u praksi najviše koriste od strane tvrtki različite veličine.
Zadnja uvodna napomena o korištenju sustava Cloudflare je to da se upravljanje sustavom izvodi preko odgovarajućeg web orijentiranog sučelja koje je maksimalno jednostavno za korištenje, ako razumijete pojmove kakve spominjemo u ovom tekstu. Ono što je sjajno je to da većinu stvari možete napraviti i na alternativni način u vlastitom programskom rješenju preko poziva odgovarajućih API funkcija. To ćemo također demonstrirati u nastavku teksta.
A koliko to košta?
Pitanje koje se postavlja samo po sebi kad čovjek pročita što sve nudi Cloudflare je – „OK, sve je to lijepo, ali koliko to zapravo košta?“ Tako stižemo do još jednog područja gdje Cloudflare jednostavno blista.
Korisniku su na raspolaganju četiri vrste pretplate: Free, Pro, Business i Contract. Detalje o svakoj od njih možete pronaći na adresi https://www.cloudflare.com/plans/. Ono što je bitno je da besplatna verzija nudi zbilja velike resurse bez obzira na to radite li na vlastitim projektima, ili je koristite čak i na komercijalnim projektima na kojima mislite zarađivati.
Na primjer, besplatna verzija baze pod nazivom D1 u besplatnoj verziji nudi korisniku 5 GB podataka po pojedinačnoj bazi te 5.000.000 čitanja podataka dnevno, odnosno 100.000 zapisivanja dnevno. Budući da je ova baza nastala na temelju dobro poznate SQLite tehnologije, sasvim je jasno da njezine karakteristike nisu takve da bismo je mogli iskoristiti u nekakvom intenzivnom multiuser korisničkom okruženju gdje stotine korisnika neprekidno izvode CRUD (Create, Read, Update i Delete) operacije na podacima.
Međutim, pretpostavimo da trebate napraviti nekakav manji sustav web naručivanja, gdje jedan administrator izvodi ažuriranje podataka o proizvodima koji se nude, a relativno ograničen broj korisnika (jer još niste Amazon) u svakom trenutku pregledava te proizvode (znači, izvodi samo operacije čitanja) uz znatno manji broj naručivanja, D1 baza bez problema zadovoljava sve potrebe korištenja.
A što ako to rješenje ima veliki broj pratećih slika o proizvodima? S njima biste mogli relativno brzo stići do limita od 5 GB. Rješenje je ponovo vrlo jednostavno. Umjesto da slike proizvoda čuvate u bazi podataka, spremate ih u posebno spremište podataka kompatibilno s AWS S3 standardom. U tom slučaju na raspolaganju je (ponovo besplatno) spremište podataka veličine dodatnih 10 GB, s dozvoljenim operacijama nad objektima reda više milijuna operacija.
A što ako rješenje koje razvijate prodate većem broju korisnika? Nema nikakvih problema – svaki korisnik besplatno ima na raspolaganju svoju vlastitu bazu podataka tipa D1 veličine 5 GB i prostor za objekte od 10 GB. Sa stanovišta Cloudflarea sve je legalno iako s takvim sustavom već možete početi ozbiljno zarađivati.
Ako slučajno neki od korisnika „preraste“ dozvoljene besplatne resurse, ili želite dodatne mogućnosti u upravljanju sustavom, onda u bilo kojem trenutku možete prijeći na stupanj više i plaćati pretplatu. Međutim, ni to nije strašno. Na primjer, jedan dodatni GB prostora u D1 bazi ima cijenu 0,75 dolara mjesečno! Ili, ako vam je tako jednostavnije, za pretplatu od 20$ mjesečno dobijete mnogo toga više u pogledu dostupnih resursa ili operacija. Detalje o konkretnim brojkama možete provjeriti sami, ali sve to je i dalje vrlo, vrlo povoljno.
Besplatna verzija baze D1 : Na raspolaganju je 5 GB po pojedinačnoj bazi, 5.000.000 čitanja podataka dnevno i 100.000 zapisivanja
Konkretni primjeri
Dva najčešća načina na koja ćete u praksi koristiti Cloudflare su:
- Već imate postojeće rješenje koje radi na webu, ali biste ga htjeli dodatno povezati sa sustavom Cloudflare zbog zaštite sustava i ubrzavanja rada. Na primjer, nekakvo LAMP ili WordPress rješenje, ili nešto treće.
- Krećete u razvoj ispočetka koristeći isključivo Cloudflare tehnologiju.
Postojeća rješenja povezana s Cloudflareom
U ovom slučaju sve već normalno funkcionira na webu, ali je potrebno napraviti redirekciju DNS zapisa tako da pokazuju na Cloudflare. Kao svojevrsni pretkorak treba napraviti kreiranje korisničkog računa na Cloudflareu, a onda preko korisničkog sučelja napraviti sve potrebne promjene kao što je priprema AAAA ili CNAME zapisa.
Iako je riječ o postupku tijekom kojeg će vam Cloudflare sučelje maksimalno pomoći, ipak vam (ako to nikad ranije niste radili) ne bismo preporučili da to radite sami. Ako pogriješite na nekom mjestu, dogodit će se to da vaša web lokacija više neće biti dostupna korisnicima, a to svakako nije nešto što želite da bude rezultat prelaska na Cloudflare. Zato taj dio nećemo posebno ni opisivati, kako poslije ne biste optužili časopis da je uzrok problema.
Najjednostavniji način da povežete Cloudflare sa svojim web serverom je da zatražite da vam to napravi neki sistem administrator iz tvrtke gdje već imate zakupljeni hosting. Kako je Cloudflare izuzetno popularan na svjetskoj razini i kontinuirano postaje sve popularniji, to je nešto što će vam sigurno znati odraditi.
Ono na što se morate pripremiti je to da će u nekom trenutku vaša web lokacija postati nedostupna na kraće vrijeme. Zato ne bi bilo loše da to na vrijeme najavite vlastitim korisnicima, a da postupak prebacivanja radite u vrijeme najmanjeg korištenja tijekom dana.
Nakon što se dovrše sve potrebne sinkronizacije, vaše web rješenje normalno funkcionira kao i prije, ali o njegovoj sigurnosti i keširanju sadržaja sada brine Cloudflare. Preko korisničkog sučelja možete dobiti čitav niz dodatnih informacija o različitim operacijama, kao što je broj posjeta korisnika (uključujući i geografski pregled), količina keširanog prometa koju sad odrađuje Cloudflare umjesto da sve dolazi izravno s vašeg hostinga, broj spriječenih pokušaja proboja „loših momaka“ i slično. I pazite sad ovo – sve to je sa strane Cloudflarea potpuno besplatno! Zar to nije sjajno?
Besplatno spremište objekata : Na raspolaganju je 10 GB po pojedinom spremištu s dozvoljenim operacijama reda više milijuna operacija
Keširanje sadržaja: Velika količina sadržaja više ne dolazi s vaših servera nego iz Cloudflareovog keširanog sadržaja
Jedini trošak koji može nastati zbog povezivanja vašeg postojećeg rješenja s Cloudflareom je eventualno plaćanje sistemskog inženjera koji će to napraviti, ako to već nemate uključeno u svoj hosting paket osnovnog davatelja usluga.
Nakon što jednom napravite takvo povezivanje, zapravo nemate nekakvog posebnog svakodnevnog posla oko nadzora Cloudflare sustava (iako svaki detalj možete pratiti preko sučelja), osim u dvije situacije.
Prva se odnosi na situaciju kad se vaš novi sadržaj (na primjer, izmijenjena slika proizvoda) ne želi odmah pojaviti u pregledniku korisnika, iako ste je postavili na svoj hosting server. Problem nastaje zato jer se slika starog proizvoda prema unaprijed definiranom vremenskom periodu korisniku i dalje prikazuje iz keširanog sadržaja na Cloudflare poslužiteljima. U tom slučaju morate nekako „forsirati“ brisanje sadržaja keša.
Druga situacija je kad netko zaista započne napad na vašu web lokaciju, to jest na vašu domenu. Na primjer, DDoS napad. Cloudflare će probati odraditi sve što je moguće da automatski obuzda takav napad, ali ponekad to nije dovoljno. Tijekom napada može se dogoditi da je rad vašeg rješenja izuzetno spor, ili se povremeno u potpunosti gubi pristup stranici. U tom slučaju morate uključiti posebni, takozvani „Under Attack“ način rada, jer on dodatno brine o napadima te omogućava da stranica i dalje funkcionira. Kad napad prestane, onda takav način treba isključiti. Pitanje koje se postavlja samo po sebi je zašto onda „Under Attack“ način rada ne bi bio stalno uključen? Stvar je u tome da se tijekom tog načina rada „režu“ još neke stvari koje bi trebale normalno funkcionirati poput pristupa agenata tražilica i slično, pa je bolje da se uključuje samo po potrebi.
Obje opcije su jednostavno dostupne preko Cloudflare sučelja, kao što se to može vidjeti iz pratećih slika uz tekst, ali... Ne možete baš očekivati da osoblje iz HR ili marketinškog odjela neke tvrtke ulazi u Cloudflare sučelje da bi to podesilo. I da usput možda ne klikne na nešto krivo i izazove nepotrebne probleme. Uostalom, to im nije ni posao.
To znači da bi u nekakvom hitnom slučaju (posebno u „Under Attack“ situaciji) moglo biti problema, jer osoba zadužena za rješavanje problema možda nije dostupna. Srećom, i ovo je rješivo na zaobilazni način. Najvažnijim mogućnostima sustava može se pristupiti preko API poziva, pa se upravljanje kritičnim mogućnostima može dodati u vlastiti softver za upravljanje sustavom. Ovu mogućnost ćemo također demonstrirati u današnjem tekstu.
Pregled pristupa : Pristup vašem web rješenju može se pratiti i po zemljama
Zaštita sadržaja: Cloudflare „usput“ sprečava da vašem rješenju pristupe „loši momci“
Razvoj novog rješenja ispočetka
U slučaju da krenete u razvoj novog rješenja ispočetka, onda preko Cloudflare sučelja možete odmah zakupiti i novu domenu, a povezivanje Cloudflare sustava s domenom će biti određeno automatski. To je moguće napraviti čak i u slučajevima kad izaberete besplatnu Cloudflare konfiguraciju. Jedino što ipak trebate platiti je cijena zakupa domene.
Kakve se baze podataka odnosno spremišta podataka pri tome mogu koristiti, opisano je u odjeljku koji se bavi cijenama korištenja sustava. To ne znači da uz određene tehnike ne možete koristiti i neku drugu bazu na nekom drugom serveru.
Ograničenja u izravnom razvoju vlastitih rješenja postoje i na području dostupnih programskih jezika. Izravno je podržan samo razvoj vlastitih rješenja u JavaScriptu ili TypeScriptu, odnosno odgovarajućim bibliotekama. Naravno, podrazumijeva se korištenje HTML i CSS datoteka. Dodatno, uz nešto više komplikacija oko konfiguracije, vlastiti kod možete pisati i u Rustu, Pythonu ili C/C++.
Ostale programske jezike možete koristiti samo ako se oni mogu pretvoriti u WASM oblik, ili ako postoji nekakav „cross compiler“ za JavaScript. Ovo je ujedno razlog zašto nije baš tako jednostavno postojeće komplicirano PHP rješenje samo tako prebaciti da radi izravno na Cloudflareu.
„Under Attack“ : Poseban način rada u slučaju napada na domenu
Pogledajmo sada što stvarno treba napraviti za razvoj i distribuciju vlastitog rješenja napisanog u nekoj od podržanih tehnologija (na primjer, HTML/CSS/JavaScript). Dovoljno je preko Cloudflare sučelja kreirati Workers, nekakvu vrstu spremišta u koju se postavlja vaš kod. Nakon toga se Workers preko sučelja povezuje s vašom domenom (ranije kupljenom preko Cloudflare sučelja). Sve što trebate napraviti nakon toga je da za aplikaciju koju razvijate na vlastitom računalu pripremite novu distribuciju (gumb New Deployment), a onda povučete sve datoteke iz vašeg lokalnog rješenja u odgovarajući prostor na Workers stranici.
A što ako je u rješenju uključeno i korištenje baze podataka? Recimo, ranije spomenuta baza D1? Prvo u glavnom izborniku treba izabrati kategoriju „Storage & Databases“ te u okviru nje opciju „D1 SQLite Database“. Nakon toga se stiže do posebnog dijela sučelja za kreiranje baze podataka, odnosno potrebnih tablica u okviru baze podataka. Preko sučelja se mogu definirati svi stupci jedne ili više tablica, te izvoditi CRUD operacije nad podacima.
Kako to konkretno izgleda možete vidjeti na pratećoj slici uz tekst, ili ako ste kreirali svoj vlastiti besplatni korisnički račun na Cloudflareu, onda to možete probati sami.
Tablica koju možete vidjeti na pratećoj slici namijenjena je za čuvanje PIN vrijednosti, a one se koriste u okviru mobilne aplikacije napisane u Flutteru. Posebni Workers dio predstavlja međusloj za komunikaciju Flutter aplikacije i ove tablice. Drugim riječima, ako razvijate neku aplikaciju u Flutteru, a na webu biste htjeli imati upute za tu aplikaciju, pa čak možda i prikazivati nekakve podatke iz baze, sve to možete odraditi isključivo uz pomoć Cloudflare tehnologije. Nije vam potrebno ništa dodatno izvan toga!
Čisto u svrhu demonstracije prilažemo i dijelove koda u Flutteru koji pokazuju kako se postavlja upit na D1 bazu podataka. Naravno u „duhu vremena“, ovaj dio koda je u potpunosti pripremio AI nakon što su mu definirani svi potrebni podaci o Cloudflare okruženju i bazi podataka na koju se treba spojiti. I takav AI dio koda stvarno se koristi u mobilnoj aplikaciji.
...static Uri get _queryUri => Uri.parse( ‘https://api.cloudflare.com/client/v4/accounts/$_kCloudflareAccountId’ ‘/d1/database/$_kCloudflareDatabaseId/query’, );...static Future<Map<String, dynamic>> _postBatch({ required String sql, required List<Object?> params, required AppUiStrings loc,}) async { _cloudflareDebug(‘POST $_queryUri’); _cloudflareDebug(‘SQL: ${sql.trim()}’); _cloudflareDebug(‘Params: $params’); http.Response response; try { response = await http .post( _queryUri, headers: { ‘Content-Type’: ‘application/json’, ‘Authorization’: ‘Bearer $_kCloudflareApiToken’, }, body: jsonEncode({‘sql’: sql, ‘params’: params}), ) .timeout(const Duration(seconds: 30)); } catch (e, st) { _cloudflareDebug(‘Network error: $e’); debugPrintStack( stackTrace: st, label: _kCloudflareDebugTag, ); throw _D1QueryException( loc.pinVerifyNetworkError(e.toString()), debugDetail: ‘URI: $_queryUri\nException: $e’, ); } _cloudflareDebug(‘HTTP ${response.statusCode}’); if (response.statusCode < 200 || response.statusCode >= 300) { throw _D1QueryException( loc.pinVerifyHttpError(response.statusCode, _truncate(response.body)), debugDetail: ‘HTTP ${response.statusCode}\nResponse body:\n${response.body}’, ); } Map<String, dynamic> decoded; try { decoded = jsonDecode(response.body) as Map<String, dynamic>; } catch (e, st) { _cloudflareDebug(‘JSON parse error: $e’); debugPrintStack( stackTrace: st, label: _kCloudflareDebugTag, ); throw _D1QueryException( loc.pinVerifyJsonError(e.toString()), debugDetail: ‘Raw response body:\n${response.body}’, ); } if (decoded[‘success’] != true) { final errors = _formatApiErrors(decoded[‘errors’]); throw _D1QueryException( loc.pinVerifyApiError(errors), debugDetail: ‘API response:\n${jsonEncode(decoded)}’, ); } final result = decoded[‘result’]; if (result is! List || result.isEmpty) { _cloudflareDebug(‘Query returned no result batch.’); return const {}; } final batch = result.first; if (batch is! Map<String, dynamic>) { _cloudflareDebug(‘Unexpected result batch type: ${batch.runtimeType}’); return const {}; } if (batch[‘success’] == false) { final errors = _formatApiErrors(batch[‘errors’]); throw _D1QueryException( loc.pinVerifyApiError(errors), debugDetail: ‘Batch response:\n${jsonEncode(batch)}’, ); } return batch;}...
Upravljanje keširanjem: Koristi se za definiranje kad se novi sadržaj stvarno treba pojaviti korisniku
Izravni razvoj aplikacije: Potrebno je napraviti povezivanje domene s takozvanim Workers
Konkurencija
Kao i na svim drugim područjima ljudskog djelovanja, tako i Cloudflare ima konkurenciju.
Jedna od kategorija sustava koji sasvim sigurno mogu zamijeniti Cloudflare čine takozvani hyperscalers sustavi kao što su Amazon AWS, Google Cloud, Microsoft Azure. Naravno, cijena korištenja takvih sustava je poprilična i u pravilu ih koriste velike tvrtke.
Od manjih/jeftinijih sustava kao izravne konkurencije tvrtki Cloudflare, možemo spomenuti dvije grupe sustava. Prvu čine sustavi namijenjeni tvrtkama različite veličine (ali nisu iz prethodne grupe najvećih) i tu pripadaju sustavi kao što su Akamai, Fastly ili Imperva. U drugu grupu ulaze sustavi za alternativni razvoj vlastitih aplikacija ili pojedinog segmenta aplikacija. Na primjer, Vercel, Netlify ili Supabase.
Međusobna usporedba ovih sustava prelazi okvire ovog teksta, ali bar imate polazište za vlastito istraživanje i uspoređivanje.
API pristup
Već smo spomenuli da bi u praksi bilo dobro neke od mogućnosti Cloudflare sustava integrirati u vlastito rješenje, kako za njihovo korištenje ne bi trebalo ulaziti u korisničko sučelje. Jedna od takvih operacija je brisanje trenutačnog sadržaja keša, kako bi se novi sadržaj na vašem hosting serveru odmah pojavio u pregledniku.
Postupak u tom konkretnom slučaju ide ovako. Ovdje mislimo na sve što treba napraviti programer da bi u vaš alat za upravljanje web lokacijom dodao brisanje Cloudflare keša. Ako programer dobro odradi svoj posao, na kraju ćete dobiti samo jedan običan gumb zadužen za brisanje keša.
Čim ste napravili registraciju na Cloudflareu, vaš račun je dobio odgovarajući ID. Slično kao što je svoj ID dobila i zona u kojoj se nalazi osnovni Cloudflare poslužitelj. Te informacije morate pronaći u sučelju i zabilježiti. U ovom konkretnom slučaju potreban vam je takozvani ZoneID. Riječ je o heksadecimalnoj „kobasici“ sastavljenoj od 30 znakova.
Sad je u sučelju još potrebno definirati token potreban za izvođenje određene operacije. Prilikom definiranja tokena treba iz ponuđenih opcija točno izabrati to što vam stvarno treba. Na primjer, za token povezan s brisanjem keša trebali biste izabrati „Zone / Cache Purge / Purge“. Na raspolaganju je još nekoliko dodatnih opcija, ali za sada je dovoljno prijeći na sljedeću stranicu i onda potvrditi kreiranje tokena pod zadanim nazivom. Kao rezultat izvođenja prethodne operacije kreirat će se još kompliciranija vrijednost (TokenID) nego što je to Zone ID. Još veći broj znakova i mogućnost korištenja svih slova abecede.
Pretpostavimo da je alat kojim se upravlja vašim web sustavom napisan u Visual C#. Funkcija za trenutačno brisanje Cloudflare keša (kako bi se vidjela vaša nova slika na serveru) ima oblik kao u nastavku. Samo smo prave vrijednosti za ZoneID i TokenID zamijenili s hrpom znakova x. U svakom slučaju na ovom mjestu biste trebali postaviti svoje vlastite vrijednosti.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Net.Http.Json;using System.Threading.Tasks;using System.Windows.Forms;public async Task ClearCFCache(){ string cloudflareApiBase = “https://api.cloudflare.com/client/v4/”; string apiToken = “cfut_k4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”; string zoneId = “63xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”; using (HttpClient http = new HttpClient()) { http.BaseAddress = new Uri(cloudflareApiBase); http.Timeout = TimeSpan.FromSeconds(30); http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, apiToken); http.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue(“application/json”)); string path = $”zones/{zoneId}/purge_cache”; var body = new { purge_everything = true }; using (HttpResponseMessage resp = await http.PostAsJsonAsync(path, body)) { if (resp.ReasonPhrase == “OK”) { MessageBox.Show(“Uspješno je dovršeno brisanje Cloudflare keša”, “Obavijest”, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(“Greška - Cloudflare keš nije obrisan!”, “Obavijest”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }}
Na sličan način biste mogli pojednostaviti korištenje čitavog niza dodatnih operacija, kako bi se za njihovo korištenje izbjegao ulazak u korisničko sučelje sustava Cloudflare.
Korištenje API poziva nije svaki put tako jednostavno kao u ovom primjeru brisanja sadržaja keša. Već onaj drugi, ranije spomenuti primjer postavljanja Cloudflare okruženja u „Under Attack“ mode je bar duplo složeniji. U takvom slučaju morate prvo korištenjem jednog API poziva provjeriti u kakvom je trenutačno stanju okruženje, a tek onda u drugom koraku postaviti okruženje u suprotan status. Riječ je o dva različita API poziva, ali i o pripremi dva tokena. Prema načinu na koji je organiziran rad s tokenima, prvo morate pripremiti GET token da biste mogli pročitati trenutačno stanje sučelja, a tek nakon toga EDIT token da biste ga mogli promijeniti.
Krajnji korisnik vašeg sustava ne smije primijetiti kakva se zapravo „drama događa u pozadini“, nego na ekranu treba vidjeti samo jedan jedini gumb. On na sebi treba pokazivati u kakvo će novo stanje prebaciti „Under Attack“ postavku na temelju trenutačne vrijednosti i to je sve.
Zaključak
Na temelju svega napisanog u ovom tekstu zapravo nemate nekakvo posebno opravdanje zašto vlastite sustave ne biste povezali s Cloudflareom u cilju povećanja brzine rada i/ili sigurnosti. Osim ako već ne koristite neki od hyperscalers sustava ili nešto drugo od konkurencije. Naknadno, kad steknete malo više iskustva, možete početi koristiti i ostale mogućnosti sustava Cloudflare.
Naravno, postoji i jedna potencijalno loša strana u cijeloj priči. Pitanje koje uvijek leži nad glavom je što ako otkaže ili se sruši Cloudflare, a tisuće tvrtki spojene su na njega?! Možda bolje ne razmišljati o tome.





































