Nginx

Kaip užblokuoti „Hotlinking“ su „Nginx“

Kaip užblokuoti „Hotlinking“ su „Nginx“
„Nginx“ yra lengvas interneto serveris, galintis tvarkyti daugybę užklausų per tam tikrą laiką, netrukdydamas serveriui. Jame yra sudėtingų funkcijų, tokių kaip asinchroninis apdorojimas, palaikymas „ipv6“, talpyklos krautuvui, „http / 2“ palaikymas, blokavimas „hotlinking“, gijų telkiniai, SPDY ir SSL ir daugelis kitų. Tarp jų viena iš svarbiausių bet kurios svetainės funkcijų apskritai yra „Hot Hotlinking“ blokavimas. „Hotlinking“ yra kenkėjiška praktika, kurią dažnai daro tam tikri smulkūs žiniatinklio meistrai, kai jie negali sau leisti pralaidumo kainos, todėl jie ją pasiima iš kažkur kitur. Tai trukdo teisėtiems žiniatinklio valdytojams naudoti pralaidumą, už kurį jie sumokėjo. Be to, susietasis šaltinis gali būti nepasiekiamas vartotojams, kurie lankosi pirminėje svetainėje, kai baigsis pirminiam žiniatinklio valdytojui skirtas pralaidumas, o svetainės savininkas nemokėjo už pernelyg sunaudotą pralaidumą. Apskritai, norint išsaugoti internetinių svetainių sąsajų vientisumą, turėtų būti sustabdytas jų prieinamumas, o šiame vadove mokoma, kaip tai padaryti lengvai.

Paruošimas

Paruošimo segmente yra panaikintos bendrosios abiejų vėliau nurodytų metodų instrukcijos. Aišku, norint turėti „Nginx“ konfigūracijos failą, svarbu turėti konsolę, kad būtų galima pasiekti serverį per SSH, ir tinkamą teksto redaktorių kaip „nano“. Kai abu įsigysite, naudokite šias komandas, kad atidarytumėte, išsaugotumėte ir pritaikytumėte pakeitimus. Atliekant šiuos veiksmus daroma prielaida, kad vartotojas jau naudojasi serveriu per SSH.

nano / etc / nginx / sites-available / default

1 metodas: bendrasis metodas

Bendrąjį metodą labai lengva įgyvendinti ir suprasti, nes jame yra tik vietos blokas. Be to, jis blokuoja užklausas tik tam tikrais failų formatais, užuot blokavęs kiekvieną neteisingų nukreipėjų į serverį užklausą.

  1. Nukopijuokite šį kodo fragmentą.
  2. Atidarykite numatytąjį „nginx“ failą, kaip parodyta „Pasirengimo“ etape.
  3. Įklijuokite nukopijuotą kodo fragmentą į pirmąjį vietos bloką, esantį numatytame faile. „Nginx“ sistemoje prieš įprastą pasvirąjį brūkšnį (/) visada pirmenybė teikiama taisyklingosios išraiškos didžiosioms ir mažosioms raidėms (~ *), todėl šis kodo fragmentas vykdomas prieš priekinio pasvirojo brūkšnio vietos bloką.
  4. Išsaugokite ir uždarykite numatytąjį failą, tada atlikite 3, 4 etapus „Paruošimas“, kad pakeitimai įsigaliotų.

Šiame pavyzdyje jis blokuoja užklausas į css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf ir eot failus. Vietos bloke yra 10 sąlyginių sakinių. Pirmasis sąlyginis sakinys leidžia tiesiogiai peržiūrėti išteklius per interneto naršyklęnd ir 3rd blokai leidžia peržiūrėti išteklius per pradinę svetainę (tiek nuogus, tiek www padomenius), likę blokai, išskyrus paiešką?q ir paskutinis blokas leidžia paieškos variklių tikrintuvams pasiekti ir indeksuoti išteklius, o tai yra labai svarbu indeksuoti vaizdus tiek „Google“ vaizduose, tiek „Bing“ vaizduose. Paieška?q leidžia „Google“ talpyklos tarnybai pasiekti ir išsaugoti išteklius kartu su puslapiu, todėl puslapį galima pasiekti tiesiogiai per „Google“ paieškos rezultatus, kai svetainė neprijungta prie interneto.

vieta ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $
jei ($ http_referer !~ "^ $")
nustatyti $ rule_0 1 $ rule_0;

jei ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
nustatyti $ rule_0 2 $ rule_0;

jei ($ http_referer !~ "^ http: // nucuta.com $ ")
nustatyti $ rule_0 3 $ rule_0;

jei ($ http_referer !~ * "google.")
nustatyti $ rule_0 4 $ rule_0;

jei ($ http_referer !~ * "paieška?q = talpykla ")
nustatyti $ rule_0 5 $ rule_0;

jei ($ http_referer !~ * "msn.")
nustatyti $ rule_0 6 $ rule_0;

jei ($ http_referer !~ * "yahoo.")
nustatyti $ rule_0 7 $ rule_0;

jei ($ http_user_agent !~ * "googlebot")
nustatyti $ rule_0 8 $ taisyklę_0;

jei ($ http_user_agent !~ * "msnbot")
nustatyti $ rule_0 9 $ rule_0;

jei ($ http_user_agent !~ * "slurp")
nustatyti $ rule_0 10 $ taisyklę_0;

jei ($ rule_0 = "10987654321")
grįžti 403;
pertrauka;

2 metodas: „Valid_Referers“ metodas

Galiojantys persiuntėjai yra patogiausias ir plačiai pripažintas būdas lengvai blokuoti negaliojančius persiuntėjus. Jame yra tik dvi eilutės, palyginti su ankstesniu metodu, ir jis yra labai lankstus. Tačiau tai šiek tiek sunku suvirškinti, nes tai apima reguliarius posakius ir kitokį mechanizmą, kuris blokuoja negaliojančių persiuntėjų užklausas.

  1. Nukopijuokite šį kodo fragmentą tarp pagrindinio vietos bloko ir tarp jų.
  2. Pakeiskite domenų vardų sąrašą leistinais domenų pavadinimais, pvz., „Google“, „Bing“ ar savo domenais ir pan.
  3. Išsaugokite ir uždarykite numatytąjį failą, tada atlikite 3, 4 etapus „Paruošimas“, kad pakeitimai įsigaliotų.

valid_referers nėra užblokuotų serverių_vardų

*.linux.com linux.* www.linux.com / about /
~ \.Linux \.;
 
jei ($ invalid_referer)
grįžti 403;

Jame daugiausia yra du kodų blokai „valid_referers“ ir „if“ sąlyginė išraiška su invalid_referer kintamuoju. Pagal numatytuosius nustatymus šis kodo blokas naudojamas tarp vietos ir pačioje vietos bloko pradžioje prieš vykdant bet kurį kitą kodą, tačiau jis taip pat gali būti naudojamas bet kurioje kitoje vietoje, pavyzdžiui, tarp vietos kodo bloko su reguliariomis išraiškomis aptikti konkrečius failų formatus, kad blokavimas būtų aktualus pirmiau nurodytiems failų formatams, kaip nurodyta 1 metode. Kaip paaiškinta anksčiau, metode yra tik du kodų blokai, pirmame kodo bloke yra 3 raktiniai žodžiai, pirmasis yra „nėra“, kai HTTP užklausoje trūksta persiuntimo lauko, antrasis yra „užblokuotas“, kai ištrinamas persiuntimo laukas. bet kuri vidurinė šalis, pvz., įgaliotasis kompiuteris, užkarda ir kt., trečiasis raktinis žodis skirtas nurodyti galiojančius domenų vardus.

Kai domeno vardas prasideda simboliu „~“, jis laikomas taisyklinga išraiška, todėl galima naudoti labai sudėtingus šablonus, tačiau gali būti sunku suprasti, jei reguliarūs posakiai nėra gerai žinomi. Jei teiginyje valid_referers nėra įvykdyta nė viena iš sąlygų, kintamasis invalid_referer nustatomas kaip tuščia eilutė, priešingu atveju jis nustatytas į 1, ką reiškia, jei būsimoje užklausoje nėra persiuntimo lauko arba jei nginx nustatė, kad persiuntimo laukas pašalintas ugniasienė ar tarpinis serveris, arba jei persiuntimo laukas nustatytas kaip nurodytas domenas (galiojantis domenų vardų sąrašas), tada netinkamas persiuntimo kintamasis nustatomas kaip tuščia eilutė, taigi, jei sąlyga nevykdoma. Tačiau jei užklausa gaunama iš domeno, kuris „valid_referers“ išraiškoje nenurodytas kaip galiojantis domenas, jis užblokuotas.

IŠVADA

Nepamirškite atsižvelgti į šį turinį ir užkirsti kelią karštųjų nuorodų teikimui jūsų „Nginx“ priglobtose svetainėse.

10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...