Nginx

Kā bloķēt Hotlinking ar Nginx

Kā bloķēt Hotlinking ar Nginx
Nginx ir viegls tīmekļa serveris, kas spēj apstrādāt ļoti daudz pieprasījumu noteiktā laikā, nepadarot serveri aizņemtu. Tas satur sarežģītas funkcijas, piemēram, asinhrono apstrādi, atbalstu ipv6, kešatmiņas ielādētāju, http / 2 atbalstu, bloķēšanas ātrās saites, pavedienu kopas, SPDY un SSL un daudz ko citu. Starp tiem viena no vissvarīgākajām iezīmēm jebkurai vietnei kopumā ir bloķētā saite. Hotlinking ir ļaunprātīga prakse, ko bieži veic daži sīko tīmekļa meistari, kad viņi nevar atļauties joslas platuma izmaksas, un tādējādi viņi to paņem no kaut kurienes. Tas kavē likumīgos tīmekļa meistarus izmantot joslas platumu, par kuru viņi maksāja. Papildus tam saistītais resurss lietotājiem, kuri apmeklē sākotnējo vietni, var nebūt pieejams, kad sākotnējam tīmekļa pārzinim piešķirtais joslas platums ir iztecējis, un vietnes īpašnieks nav samaksājis par pārmērīgi patērēto joslas platumu. Kopumā, lai saglabātu integritāti, ir jāpārtrauc vietnes saites ar saitēm, un šī rokasgrāmata māca, kā to izdarīt viegli.

Sagatavošana

Sagatavošanas segmentā tiek noņemti vispārīgie norādījumi par abām vēlāk minētajām metodēm. Acīmredzot ir svarīgi, lai būtu piekļuve serverim, izmantojot SSH, konsole un pienācīgs teksta redaktors kā nano, lai atvērtu Nginx konfigurācijas failu. Kad abi ir iegūti, izmantojiet šīs komandas, lai atvērtu, saglabātu un lietotu izmaiņas. Šīs darbības pieņem, ka lietotājs jau ir piekļuvis serverim, izmantojot SSH.

nano / etc / nginx / sites-available / default

1. metode: Vispārīgā metode

Vispārīgo metodi ir ļoti viegli ieviest un saprast, jo tajā ir tikai atrašanās vietas bloks. Turklāt tas bloķē pieprasījumus tikai noteiktiem failu formātiem, nevis bloķē katru pieprasījumu no nederīgiem novirzītājiem uz serveri.

  1. Kopējiet šo koda fragmentu.
  2. Atveriet noklusējuma failu nginx, kā redzams fāzē “Sagatavošana”.
  3. Ielīmējiet nokopēto koda fragmentu zem pirmā atrašanās vietas bloka, kas atrodams noklusējuma failā. Nginx sistēmā regulārās izteiksmes nejutīgais (~ *) vienmēr tiek prioritizēts pirms slīpsvītras uz priekšu (/), un tāpēc šāds koda fragments tiek izpildīts pirms slīpsvītras atrašanās vietas bloka.
  4. Saglabājiet un aizveriet noklusējuma failu un pēc tam izpildiet 3, 4 darbības fāzē “Sagatavošana”, lai izmaiņas stātos spēkā.

Šajā piemērā tas bloķē pieprasījumus failiem css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf un eot. Vietas blokā ir 10 nosacīti paziņojumi. Pirmais nosacītais paziņojums ļauj resursus tieši apskatīt, izmantojot tīmekļa pārlūkprogrammund un 3rd bloki ļauj resursus apskatīt, izmantojot sākotnējo vietni (gan neapbruņotos, gan www apakšdomēnus), pārējie bloki, izņemot meklēšanu?q un pēdējais bloks ļauj meklētājprogrammu rāpuļprogrammām piekļūt un indeksēt resursus, kas ir ļoti svarīgi, lai indeksētu attēlus gan google attēlos, gan bing attēlos. Meklēšana?q ļauj google kešatmiņas pakalpojumam piekļūt un saglabāt resursus kopā ar lapu, tādējādi lapai var piekļūt tieši, izmantojot Google meklēšanas rezultātu, kad vietne ir bezsaistē.

atrašanās vieta ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $
ja ($ http_referer !~ "^ $")
iestatīt $ rule_0 1 $ rule_0;

ja ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
iestatīt $ rule_0 2 $ rule_0;

ja ($ http_referer !~ "^ http: // nucuta.com $ ")
iestatīt $ rule_0 3 $ rule_0;

ja ($ http_referer !~ * "google.")
iestatīt $ rule_0 4 $ rule_0;

ja ($ http_referer !~ * "meklēšana?q = kešatmiņa ")
iestatīt $ rule_0 5 $ rule_0;

ja ($ http_referer !~ * "msn.")
iestatīt $ rule_0 6 $ rule_0;

ja ($ http_referer !~ * "yahoo.")
iestatīt $ rule_0 7 $ rule_0;

ja ($ http_user_agent !~ * "googlebot")
iestatīt $ rule_0 8 $ rule_0;

ja ($ http_user_agent !~ * "msnbot")
iestatīt $ rule_0 9 $ rule_0;

ja ($ http_user_agent !~ * "slurp")
iestatīt $ rule_0 10 $ rule_0;

ja ($ rule_0 = "10987654321")
atgriešanās 403;
pārtraukums;

2. metode: Valid_Referers metode

Derīgas atsauces ir visērtākā un plaši atzītā metode, kā viegli bloķēt nederīgus atsaucējus. Tas satur tikai divas rindas salīdzinājumā ar iepriekšējo metodi un ir ļoti elastīgs. Tomēr tas ir nedaudz grūti sagremojams, jo tas ietver regulāras izteiksmes un citu mehānismu, lai bloķētu nederīgu atsaucēju pieprasījumus.

  1. Kopējiet šo koda fragmentu starp un pašā galvenās atrašanās vietas bloka pašā sākumā.
  2. Nomainiet domēnu vārdu sarakstu ar atļautajiem domēnu nosaukumiem, piemēram, google, bing vai saviem domēniem utt.
  3. Saglabājiet un aizveriet noklusējuma failu un pēc tam izpildiet 3, 4 darbības fāzē “Sagatavošana”, lai izmaiņas stātos spēkā.

valid_referers neviens nav bloķējis servera_nosaukumus

*.Linux.com linux.* www.Linux.com / about /
~ \.Linux \.;
 
if ($ invalid_referer)
atgriešanās 403;

Tam galvenokārt ir divi kodu bloki: valid_referers un nosacītā izteiksme ar mainīgo invalid_referer. Pēc noklusējuma šis koda bloks tiek izmantots starp un pašā atrašanās vietas bloka sākumā pirms jebkura cita koda izpildes, taču to var izmantot arī jebkurā citā vietā, piemēram, starp atrašanās vietas koda bloku ar regulārām izteiksmēm noteikt konkrētus failu formātus, lai bloķēšana būtu piemērota iepriekšminētajiem failu formātiem, kā tas ir 1. metodē. Kā paskaidrots iepriekš, metodē ir tikai divi kodu bloki, pirmajā kodu blokā ir 3 atslēgvārdi, pirmais ir “neviens”, ja HTTP pieprasījumā nav atsauces lauka, otrais tiek “bloķēts”, kad tiek izdzēsts atsauces lauks jebkura vidējā puse, piemēram, starpniekserveris, ugunsmūris utt., trešais atslēgvārds ir derīgu domēna vārdu norādīšana.

Kad domēna nosaukums sākas ar simbolu “~”, tas tiek uzskatīts par regulāru izteiksmi, un tādējādi var izmantot ļoti sarežģītus modeļus, taču to var būt grūti saprast, ja parastās izteiksmes nav labi zināmas. Ja valid_referers priekšrakstā nav izpildīts neviens no nosacījumiem, mainīgais invalid_referer tiek iestatīts uz tukšu virkni, pretējā gadījumā tas tiek iestatīts uz 1, ko tas nozīmē, ja gaidāmajā pieprasījumā nav neviena atsauces lauka vai ja nginx identificēja, ka atsauces lauks ir noņemts ko veic ugunsmūris vai starpniekserveris, vai, ja novirzītāja lauks ir iestatīts uz norādītajiem domēniem (derīgs domēnu vārdu saraksts), nederīgs atsauces mainīgais tiek iestatīts kā tukša virkne un tādējādi tā, ja nosacījums netiek izpildīts. Tomēr, ja pieprasījums nāk no domēna, kas izteiksmē valid_referers nav norādīts kā derīgs domēns, tas tiek bloķēts.

SECINĀJUMS

Lūdzu, noteikti apsveriet šo saturu un novērsiet ātro saišu izveidi savās Nginx mitinātajās vietnēs.

Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...
Noderīgi rīki Linux spēlētājiem
Ja jums patīk spēlēt spēles Linux, iespējams, ka spēļu pieredzes uzlabošanai, iespējams, esat izmantojis tādas lietotnes un utilītprogrammas kā Wine, ...