Nginx

Ako blokovať Hotlinking s Nginx

Ako blokovať Hotlinking s Nginx
Nginx je ľahký webový server schopný zvládnuť obrovský počet požiadaviek v danom čase bez toho, aby bol server zaneprázdnený. Obsahuje sofistikované funkcie, ako je asynchrónne spracovanie, podpora protokolu ipv6, načítanie vyrovnávacej pamäte, podpora http / 2, blokovanie hotlinking, oblasti vlákien, SPDY a SSL a mnoho ďalších. Jednou z najdôležitejších funkcií každej webovej stránky vo všeobecnosti je blokovanie hotlinkov. Hotlinking je škodlivá praktika, ktorú často robia niektorí majstri v drobných weboch, keď si nemôžu dovoliť náklady na rýchlosť spojenia, a tak si ju nakoniec vezmú odinakiaľ. To bráni legitímnym webovým majstrom vo využívaní šírky pásma, za ktorú platili. Naviac môže byť prepojený zdroj nedostupný pre používateľov, ktorí navštívia pôvodný web, keď dôjde kapacita pásma pridelená pôvodnému správcovi webu a vlastník webu za nadmerne spotrebovanú šírku pásma neplatí. Celkovo by sa mala z dôvodu zachovania integrity zastaviť dostupnosť hotlinkingu na webe a táto príručka vás naučí, ako to ľahko urobiť.

Príprava

V segmente prípravy sú všeobecné pokyny pre obidve neskôr uvedené metódy zrušené. Je zrejmé, že je dôležité mať konzolu na prístup k serveru cez SSH a správny textový editor ako nano na otvorenie konfiguračného súboru Nginx. Po získaní oboch použite na otvorenie, uloženie a použitie zmien nasledujúce príkazy. Nasledujúce kroky predpokladajú, že používateľ už mal prístup na server cez SSH.

nano / etc / nginx / sites-available / default

Metóda 1: Všeobecná metóda

Všeobecná metóda je veľmi ľahko implementovateľná a zrozumiteľná, pretože obsahuje iba blok umiestnenia. Ďalej blokuje požiadavky iba na určité formáty súborov namiesto blokovania všetkých požiadaviek od neplatných odkazujúcich na server.

  1. Skopírujte nasledujúci útržok kódu.
  2. Otvorte predvolený súbor nginx, ako je vidieť vo fáze „Príprava“.
  3. Vložte útržok skopírovaného kódu pod prvý blok umiestnenia nájdený v predvolenom súbore. V nginx je regulárny výraz necitlivý na veľké a malé písmená (~ *) vždy uprednostnený pred lomkou (/), a teda nasledujúci úryvok kódu je vykonaný pred blokom umiestnenia lomky.
  4. Uložte a zatvorte predvolený súbor. Potom vykonajte 3, 4 kroky vo fáze „Príprava“, aby sa zmeny prejavili.

V nasledujúcom príklade blokuje požiadavky na súbory css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf a eot. V bloku umiestnenia sa nachádza 10 podmienených príkazov. Prvé podmienené vyhlásenie umožňuje priame prezeranie zdrojov prostredníctvom webového prehliadača, 2nd a 3rd bloky umožňujú prezeranie zdrojov prostredníctvom pôvodného webu (holé aj subdomény www), zvyšok blokov okrem vyhľadávania?q a posledný blok umožňujú prístup indexovým prehľadávačom vyhľadávacích strojov a indexujú zdroje, čo je veľmi dôležité na indexovanie obrázkov v obrázkoch google aj v obrázkoch bing. Hľadanie?q umožňuje službe vyrovnávacej pamäte google prístup a ukladanie zdrojov spolu so stránkou, a teda na stránku je možné pristupovať priamo cez výsledok vyhľadávania google, keď je web offline.

umiestnenie ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $
if ($ http_referer !~ "^ $")
nastaviť $ pravidlo_0 1 $ pravidlo_0;

if ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
nastaviť $ pravidlo_0 2 $ pravidlo_0;

if ($ http_referer !~ "^ http: // nucuta.com $ ")
nastaviť $ pravidlo_0 3 $ pravidlo_0;

if ($ http_referer !~ * "google.")
nastaviť $ pravidlo_0 4 $ pravidlo_0;

if ($ http_referer !~ * "vyhľadávanie?q = vyrovnávacia pamäť ")
nastaviť $ pravidlo_0 5 $ pravidlo_0;

if ($ http_referer !~ * "msn.„)
nastaviť $ pravidlo_0 6 $ pravidlo_0;

if ($ http_referer !~ * "yahoo.")
nastaviť $ pravidlo_0 7 $ pravidlo_0;

if ($ http_user_agent !~ * "googlebot")
nastaviť $ pravidlo_0 8 $ pravidlo_0;

if ($ http_user_agent !~ * "msnbot")
nastaviť $ pravidlo_0 9 $ pravidlo_0;

if ($ http_user_agent !~ * "usrkávať")
nastaviť $ pravidlo_0 10 $ pravidlo_0;

if ($ rule_0 = "10987654321")
spiatočná 403;
prestávka;

Metóda 2: Metóda Valid_Referers

Platné referery sú najpohodlnejším a všeobecne uznávaným spôsobom ľahkej blokácie neplatných refererov. V porovnaní s predchádzajúcou metódou obsahuje iba dva riadky a je veľmi flexibilný. Je to však trochu ťažké stráviť, pretože sa jedná o regulárne výrazy a iný mechanizmus blokovania požiadaviek od neplatných refererov.

  1. Skopírujte nasledujúci útržok kódu medzi a na začiatok hlavného bloku umiestnenia.
  2. Nahraďte zoznam názvov domén povolenými názvami domén, napríklad google, bing alebo vlastnými doménami atď.
  3. Uložte a zatvorte predvolený súbor. Potom vykonajte 3, 4 kroky vo fáze „Príprava“, aby sa zmeny prejavili.

valid_referers nikto nezablokoval server_names

*.linux.com linux.* www.linux.com / about /
~ \.linux \.;
 
if ($ invalid_referer)
spiatočná 403;

Má hlavne dva bloky kódu, valid_referers a podmienený výraz if s premennou invalid_referer. Predvolene sa tento blok kódu používa medzi a na samom začiatku bloku umiestnenia pred vykonaním iného kódu, ale môže sa použiť aj na akomkoľvek inom mieste, napríklad medzi blokom kódu umiestnenia s regulárnymi výrazmi na detegovať konkrétne formáty súborov, aby bolo blokovanie relevantné pre vyššie uvedené formáty súborov, ako v metóde 1. Ako už bolo vysvetlené, metóda obsahuje iba dva bloky kódu, prvý blok kódu obsahuje 3 kľúčové slová, prvé je „žiadne“, keď v požiadavke HTTP chýba pole refereru, druhé je „blokované“, keď je pole refereru vymazané akýmkoľvek prostredníkom, napríklad proxy serverom, bránou firewall atď., tretie kľúčové slovo je na určenie platných doménových mien.

Keď názov domény začína symbolom „~“, považuje sa to za regulárny výraz, a teda je možné použiť veľmi zložité vzory, ale môže byť ťažké pochopiť, ak regulárne výrazy nie sú dobre známe. Ak vo vyhlásení valid_referers nie je splnená žiadna z podmienok, premenná invalid_referer je nastavená na prázdny reťazec, inak je nastavená na 1, čo to znamená, ak budúca požiadavka neobsahuje žiadne pole refereru alebo ak nginx identifikoval, že pole referera je odstránené firewallom alebo proxy, alebo ak je pole refereru nastavené na určené domény (platný zoznam názvov domén), potom je neplatná premenná refereru nastavená na prázdny reťazec, a teda jeho podmienka if nie je vykonaná. Ak však požiadavka prichádza z domény, ktorá nie je uvedená vo výraze valid_referers ako platná doména, je blokovaná.

ZÁVER

Nezabudnite vziať do úvahy tento obsah a zabrániť Hotlinking na svojich hostených stránkach Nginx.

S ovládaním pomocou myši X-Mouse môžete tlačidlá myši premapovať odlišne pre iný softvér
Možno budete potrebovať nástroj, ktorý by mohol zmeniť ovládanie myši pri každej aplikácii, ktorú používate. Ak je to váš prípad, môžete vyskúšať apli...
Recenzia bezdrôtovej myši Microsoft Sculpt Touch
Nedávno som čítal o Microsoft Sculpt Touch bezdrôtová myš a rozhodol sa ju kúpiť. Po chvíli používania som sa rozhodol s ním podeliť o svoje skúsenost...
Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...