Priprema
U segmentu pripreme uklanjaju se opće upute za obje kasnije spomenute metode. Očito je važno imati konzolu za pristup poslužitelju putem SSH-a i odgovarajući uređivač teksta kao nano za otvaranje Nginx konfiguracijske datoteke. Nakon što steknete obje, upotrijebite sljedeće naredbe za otvaranje, spremanje i primjenu promjena. Sljedeći koraci pretpostavljaju da je korisnik već pristupio poslužitelju preko SSH-a.
- Upišite sljedeću naredbu da biste otvorili zadanu konfiguracijsku datoteku Nginxa. Ako svaka domena ima zasebnu konfiguracijsku datoteku, upotrijebite njezino ime umjesto zadane.
- U zadanu ili konfiguracijsku datoteku unesite kodove navedene u jednoj od kasnije spomenutih metoda. Obavezno upotrijebite samo jedan od njih.
- Upotrijebite sljedeću naredbu za testiranje konfiguracijske datoteke prije nego što je gurnete u način rada uživo.
- Ako je sve u dobrom redoslijedu, samo naprijed i upišite sljedeću naredbu da biste primijenili promjene kako bi stupile na snagu.
Metoda 1: Opća metoda
Opću je metodu vrlo jednostavno implementirati i razumjeti jer sadrži samo blok lokacije. Nadalje, blokira zahtjeve samo za određene formate datoteka, umjesto da blokira svaki zahtjev nevažećih referenta na poslužitelj.
- Kopirajte sljedeći isječak koda.
- Otvorite zadanu datoteku nginxa kako se vidi u fazi "Priprema".
- Zalijepite isječak kopiranog koda ispod prvog bloka lokacije koji se nalazi u zadanoj datoteci. U nginxu se ne osjeća osjetljiv na velika i mala slova (~ *) uvijek ispred prioriteta kosa crta (/), pa se sljedeći isječak koda izvršava prije bloka lokacije kosa crta.
- Spremite i zatvorite zadanu datoteku, a zatim slijedite 3, 4 koraka u fazi „Priprema“ da biste unijeli promjene na snagu.
U sljedećem primjeru blokira zahtjeve za css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf i eot datoteke. U bloku lokacije nalazi se 10 uvjetnih izjava. Prva uvjetna izjava omogućuje izravni pregled resursa putem web preglednika, 2nd i 3rd blokovi omogućuju pregled izvora putem izvorne web stranice (i gola i www poddomena), ostatak blokova osim pretraživanja?q i posljednji blok omogućuju pretraživačima pristup i indeksiranje resursa, što je vrlo važno za indeksiranje slika na google slikama i bing slikama. Potraga?q omogućava google cache usluzi pristup i spremanje resursa zajedno sa stranicom, a time se stranici može pristupiti izravno putem rezultata pretraživanja google kada je stranica offline.
mjesto ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $if ($ http_referer !~ "^ $")
postavi $ rule_0 1 $ rule_0;
if ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
postavi $ rule_0 2 $ rule_0;
if ($ http_referer !~ "^ http: // nucuta.com $ ")
postavi $ rule_0 3 $ rule_0;
if ($ http_referer !~ * "google.")
postavi $ rule_0 4 $ rule_0;
if ($ http_referer !~ * "pretraga?q = predmemorija ")
postavi $ rule_0 5 $ rule_0;
if ($ http_referer !~ * "msn.")
postavi $ rule_0 6 $ rule_0;
if ($ http_referer !~ * "yahoo.")
postavi $ rule_0 7 $ rule_0;
if ($ http_user_agent !~ * "googlebot")
postavi $ rule_0 8 $ rule_0;
if ($ http_user_agent !~ * "msnbot")
postavi $ rule_0 9 $ rule_0;
if ($ http_user_agent !~ * "slurp")
postavi $ rule_0 10 $ rule_0;
ako ($ pravilo_0 = "10987654321")
povratak 403;
pauza;
2. metoda: metoda Valid_Referers
Valjani suci su najprikladniji i općepoznata metoda za lako blokiranje nevaljanih suca. Sadrži samo dva retka u usporedbi s prethodnom metodom i vrlo je fleksibilan. Međutim, malo je teško za probaviti jer su u pitanju regularni izrazi i drugačiji mehanizam za blokiranje zahtjeva nevaljanih recenzenata.
- Kopirajte sljedeći isječak koda između i na sam početak glavnog bloka lokacije.
- Zamijenite popis imena domena dopuštenim imenima domena, na primjer google, bing ili vlastite domene itd.
- Spremite i zatvorite zadanu datoteku, a zatim slijedite 3, 4 koraka u fazi „Priprema“ da biste unijeli promjene na snagu.
valjani_refereri nema blokiranih imena_poslužitelja
*.linux.com linux.* www.linux.com / about /~ \.Linux \.;
if ($ invalid_referer)
povratak 403;
Uglavnom ima dva bloka koda, valid_referers i uvjetni izraz if s varijablom invalid_referer. Prema zadanim postavkama, ovaj blok koda koristi se između i na samom početku bloka lokacije prije izvođenja bilo kojeg drugog koda, ali se može koristiti i na bilo kojem drugom mjestu, na primjer između bloka koda lokacije s regularnim izrazima u otkriti određene formate datoteka kako bi blokiranje bilo relevantno za gore navedene formate datoteka, kao u metodi 1. Kao što je ranije objašnjeno, metoda sadrži samo dva bloka koda, prvi blok koda sadrži 3 ključne riječi, prvi je "nema" kada u preporuci nedostaje polje referenca u HTTP zahtjevu, drugi je "blokiran" kad se polje referenca izbriše bilo koja srednja strana, poput proxyja, vatrozida itd., treća je ključna riječ za specificiranje važećih imena domena.
Kada naziv domene započinje simbolom “~”, smatra se regularnim izrazom, pa se stoga mogu koristiti vrlo složeni obrasci, ali možda će biti teško razumjeti ako regularni izrazi nisu dobro poznati. Ako nijedan od uvjeta nije zadovoljen u naredbi valid_referers, varijabla invalid_referer postavljena je na prazan niz, u suprotnom je postavljena na 1, što znači ako nadolazeći zahtjev ne sadrži nijedno polje referenca ili ako je nginx identificirao da je polje referenca uklonjeno vatrozidom ili proxyjem, ili ako je polje referenca postavljeno na navedene domene (valjani popis imena domena), tada je nevaljana referenca varijabla postavljena na prazan niz, a time i ako se uvjet ne izvrši. Međutim, ako zahtjev dolazi iz domene koja nije navedena u izrazu valid_referers kao valjana domena, tada je blokirana.
ZAKLJUČAK
Svakako uzmite u obzir ovaj sadržaj i spriječite vruće poveznice na web lokacijama koje hostira Nginx.