Подготовка
В сегмента на подготовката се свалят общите инструкции за двата споменати по-късно метода. Очевидно е важно да имате конзола за достъп до сървъра през SSH и подходящ текстов редактор като nano, за да отворите конфигурационния файл на Nginx. След като и двете са придобити, използвайте следните команди, за да отворите, запишете и приложите промените. Следващите стъпки предполагат, че потребителят вече е имал достъп до сървъра през SSH.
- Въведете следната команда, за да отворите конфигурационния файл по подразбиране на Nginx. Ако всеки домейн има отделен конфигурационен файл, използвайте името му вместо по подразбиране.
- По подразбиране или в конфигурационния файл въведете кодовете, посочени в един от посочените по-късно методи. Уверете се, че използвате само един от тях.
- Използвайте следната команда, за да изпробвате конфигурационния файл, преди да го натиснете в режим на живо.
- Ако всичко е в правилния ред, продължете и въведете следната команда, за да приложите промените, за да влязат в сила.
Метод 1: Общ метод
Общият метод е много лесен за изпълнение и разбиране, тъй като съдържа само блок за местоположение. Освен това той блокира заявки само за определени файлови формати, вместо да блокира всяка заявка от невалидни референтни към сървъра.
- Копирайте следния кодов фрагмент.
- Отворете файла по подразбиране на nginx, както се вижда във фазата „Подготовка“.
- Поставете копирания кодов фрагмент под първия блок за местоположение, намерен във файла по подразбиране. В nginx нечувствителният към регистъра на регулярния израз (~ *) винаги се приоритизира преди наклонената черта (/) и по този начин следният кодов фрагмент се изпълнява преди блока за местоположението на наклонената черта.
- Запазете и затворете файла по подразбиране, след което следвайте 3, 4 стъпки във фаза „Подготовка“, за да влезете в сила промените.
В следващия пример той блокира заявки към css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf и eot файлове. В блока за местоположение има 10 условни израза. Първият условен оператор позволява на ресурсите да се преглеждат директно през уеб браузъра, 2nd и 3rd блокове позволяват да се преглеждат ресурсите през оригиналния сайт (голи и поддомейни www), останалите блокове с изключение на търсенето?q и последният блок позволяват на роботите на търсачките достъп и индексират ресурсите, което е много важно за индексиране на изображенията както в google изображения, така и в bing изображения. Търсенето?q позволява достъп до кеш услугата на Google и запазване на ресурсите заедно със страницата и по този начин страницата може да бъде достъпна директно чрез резултата от търсенето с google, когато сайтът е офлайн.
местоположение ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $if ($ http_referer !~ "^ $")
задайте $ rule_0 1 $ rule_0;
if ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
задайте $ rule_0 2 $ rule_0;
if ($ http_referer !~ "^ http: // nucuta.com $ ")
задайте $ rule_0 3 $ rule_0;
if ($ http_referer !~ * "google.")
задайте $ rule_0 4 $ rule_0;
if ($ http_referer !~ * "търсене?q = кеш ")
задайте $ rule_0 5 $ rule_0;
if ($ http_referer !~ * "msn.")
задайте $ rule_0 6 $ rule_0;
if ($ http_referer !~ * "yahoo.")
задайте $ rule_0 7 $ rule_0;
ако ($ http_user_agent !~ * "googlebot")
задайте $ rule_0 8 $ rule_0;
ако ($ http_user_agent !~ * "msnbot")
задайте $ rule_0 9 $ rule_0;
ако ($ http_user_agent !~ * "slurp")
задайте $ rule_0 10 $ rule_0;
ако ($ rule_0 = "10987654321")
връщане 403;
почивка;
Метод 2: Метод Valid_Referers
Валидните съдии са най-удобният и широко признат метод за блокиране на невалидни съдии с лекота. Той съдържа само два реда в сравнение с предишния метод и е много гъвкав. Въпреки това е малко трудно за смилане, тъй като включва регулярни изрази и различен механизъм за блокиране на заявки от невалидни рефери.
- Копирайте следния кодов фрагмент между тях и в самото начало на основния блок за местоположение.
- Заменете списъка с имена на домейни с разрешени имена на домейни, например google, bing или вашите собствени домейни и т.н.
- Запазете и затворете файла по подразбиране и след това следвайте 3, 4 стъпки във фаза „Подготовка“, за да влезете в сила промените.
valid_referers няма блокирани имена на сървъри
*.linux.com linux.* www.linux.com / about /~ \.Linux \.;
if ($ invalid_referer)
връщане 403;
Той има главно два кодови блока, valid_referers и условния израз if с променливата invalid_referer. По подразбиране този кодов блок се използва между тях и в самото начало на блока за местоположение преди изпълнението на който и да е друг код, но може да се използва и на всяко друго място, например между блока с код за местоположение с регулярни изрази към откриване на специфични файлови формати, за да направи блокирането подходящо за гореспоменатите файлови формати, както в метода 1. Както беше обяснено по-рано, методът съдържа само два кодови блока, първият кодов блок съдържа 3 ключови думи, първият е „няма“, когато в HTTP заявката липсва референтното поле, вторият е „блокиран“, когато референтното поле е изтрито от всяка средна страна, като прокси, защитна стена и т.н., третата ключова дума е за посочване на валидни имена на домейни.
Когато името на домейна започва със символа „~“, то се счита за регулярен израз и по този начин могат да се използват много сложни модели, но може да е трудно да се разбере, ако регулярните изрази не са добре известни. Ако нито едно от условията не е изпълнено в оператора valid_referers, променливата invalid_referer е зададена на празен низ, в противен случай тя е зададена на 1, какво означава, ако пристигащата заявка не съдържа никакво референтно поле или ако nginx идентифицира, че референтното поле е премахнато от защитна стена или прокси или ако полето на препоръчал е зададено на посочените домейни (валиден списък с имена на домейни), тогава невалидната променлива на препоръчателя е зададена на празен низ и по този начин ако условието не е изпълнено. Ако обаче заявката идва от домейн, който не е посочен в израза valid_referers като валиден домейн, тогава той е блокиран.
ЗАКЛЮЧЕНИЕ
Моля, не забравяйте да разгледате това съдържание и да предотвратите горещите връзки на вашите хоствани сайтове в Nginx.