ძირითადი შინაარსიდან გადასვლა

გამოყენებით nginx http_referer_module დაიცვას admin საიტი უხეში ძალის



ვებ-სერვერის დოკუმენტაციის წაკითხვისას, მე მომიწია საინტერესო მოდული, რომელსაც უწოდებდი http referer მოდული . ეს საშუალებას გაძლევთ დაბლოკოს საიტი, ან მისი სექციები, თუკი თხოვნა არ არის სწორი მარეგულირებელი თავით.

ეს მოდული შეიძლება გამოყენებულ იქნეს იმისათვის, რომ დაიცვას ნებისმიერი საიტის ადმინისტრირება უხეში ძალისგან. მაგალითად, საიტი მუშაობს WordPress- ში, მაგრამ IP- ის წვდომის ბლოკირება შეუსაბამო იქნება, თუ საიტზე დარეგისტრირებულია მომხმარებელი. მათ ასევე უნდა სცადონ ავტორიზაცია და შეგროვება მათი ip არის უაზრო განხორციელება. :)



ოპერაციის პრინციპი მარტივია: საიტი გვიჩვენებს შესვლის გვერდი wp-login.php- ს ბმულს და nginx- ის კონფიგურაციის ფაილში ჩვენ დავაყენებთ wp-login.php და / wp-admin / მოთხოვნებს ჩვენი საიტის მისამართით რეფეროს სათაურში.

უპირველეს ყოვლისა, შექმენით სასურველი ადგილმდებარეობა სასურველი გვერდებზე. მაგალითად:


  სერვერი {
 ...
 მდებარეობა ~ * (wp-login \ .php | wp-admin (. *)) $ {
  try_files $ uri = 404;
  fastcgi_pass unix: /run/php-www.sock;
  მდებარეობა ~ \ .php $ {
   მოიცავს fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
   fastcgi_ignore_client_abort off;
   fastcgi_param PHP_VALUE "sendmail_path = / usr / sbin / sendmail -t -i-fmail@example.com";
   fastcgi_param PHP_ADMIN_VALUE "open_basedir = / var / www / example.com /: / var / save_path /: / var / tmp_dir /";
  }
 }
 ...
 }

როგორც ხედავთ, აქ ასევე მითითებულია პარამეტრების დამუშავება php სკრიპტები (წინააღმდეგ შემთხვევაში სკრიპტები მითითებულ ადგილზე არ იმუშავებს).

მოდულის კონფიგურაცია შეიძლება დარეგისტრირდეს მაშინვე location ~* (wp-login\.php|wp-admin(.*))$ { .

პირველი ხაზი:


  valid_referers server_names 

ეს მიუთითებს, რომ საიტი მსაჯს უნდა მივიჩნიოთ სწორი მსაჯს.

და ჩვენ ასევე დავარეგისტრირებთ სატესტო მდგომარეობას. თუ მსაჯმა არასწორია, სერვერზე გამოჩნდება 403 შეცდომა (წვდომა უარყოფილია).

  თუ ($ invalid_referer) {
     დაბრუნება 403;
 }

შედეგად, კონფიგურაცია ასე გამოიყურება:

  სერვერი {
 ...
 მდებარეობა ~ * (wp-login \ .php | wp-admin (. *)) $ {
 valid_referers server_names
 თუ ($ invalid_referer) {
     დაბრუნება 403;
 }
 (fastcgi პარამეტრები)
 }
 ...
 }

საბოლოოდ, საიტზე, დაამატეთ ბმულს შესვლა გვერდზე (wp-login.php ან რაღაც არსებობს). თუ სტუმარი ამ ბმულზე დააწკაპუნეთ, ის მიიღებს ავტორიზაციას. მაგრამ თუ ბოტი კარზე პირდაპირ ამ ფაილზე, ის მიიღებს დაშვების შეცდომას.

დიახ, აღსანიშნავია, რომ სათაურის რეფერენტი შეიძლება გაყალბდეს. მაგრამ ჩემთვის პირადად, როლი სწორად შევსებული რეფერენტის სფეროში მოვიდა მასშტაბით ძალიან იშვიათად და აიკრძალა ip. :) ასე რომ, ეს მეთოდი საკმაოდ სათანადოა.



როგორ შეაფასებ სტატიას?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 1 რეიტინგი, საშუალოდ: 1.00 გარეთ 5)
იტვირთება ...

კომენტარის დამატება

თქვენი ელფოსტა არ გამოქვეყნდება.