Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk memintas ejen pengguna tertentu dalam Nginx

Bagaimana untuk memintas ejen pengguna tertentu dalam Nginx

WBOY
WBOYke hadapan
2023-05-13 10:25:051294semak imbas

Senaraihitamkan ejen pengguna khusus dalam nginx

Untuk mengkonfigurasi senarai penyekat ejen pengguna, buka fail konfigurasi nginx tapak web anda dan cari bahagian definisi pelayan. Fail ini mungkin diletakkan di tempat yang berbeza, bergantung pada konfigurasi nginx atau versi linux anda (cth., /etc/nginx/nginx.conf, /etc/nginx/sites-enabled/,/usr /local/ nginx/conf/nginx.conf,/etc/nginx/conf.d/).

Salin kod Kod adalah seperti berikut:

pelayan {
dengar 80 default_server;
nama_server xmodulo.com;
root /usr/share/nginx/html;
....
 }

Selepas membuka fail konfigurasi dan mencari bahagian pelayan, tambah pernyataan if berikut di suatu tempat dalam bahagian itu.

Salin kod Kod adalah seperti berikut:

pelayan {
dengar 80 default_server;
nama_server xmodulo.com;
root /usr/share/nginx/html;
# Padanan sensitif huruf besar/kecil
jika ($http_user_agent ~ (antivirx|arian) {
kembalikan 403;
}

#Padanan tidak sensitif huruf kecil

Salin kod Kod adalah seperti berikut:

if ($http_user_agent ~* (netcrawl|npbot|malicious)) {
return 403;
}
....
}

Seperti yang anda boleh bayangkan, pernyataan ini jika menggunakan ungkapan biasa untuk memadankan mana-mana rentetan pengguna yang buruk dan mengembalikan kod status 403 http kepada objek yang dipadankan $http_user_agent ialah pembolehubah dalam permintaan http yang mengandungi rentetan ejen pengguna. Operator ~' melakukan padanan sensitif huruf besar terhadap rentetan ejen pengguna, manakala operator '~*' melakukan padanan tidak sensitif huruf besar/kecil ialah OR logik, jadi anda boleh meletakkan banyak daripadanya dalam if. kata kunci ejen pengguna dan sekat mereka semua

Selepas mengubah suai fail konfigurasi, anda mesti memuatkan semula nginx untuk mengaktifkan penyekatan:

 $ sudo /path/to/nginx -s reload

Anda boleh melakukan ini dengan menggunakan "--user" - ejen" pilihan wget menguji penyekatan ejen pengguna.

 $ wget --user-agent "malicious bot" http://<nginx-ip-address>

Bagaimana untuk memintas ejen pengguna tertentu dalam Nginx

Urus senarai hitam ejen pengguna dalam nginx

Setakat ini, saya telah menunjukkan bagaimana untuk menyekat permintaan http untuk beberapa ejen pengguna dalam nginx Bagaimana jika anda mempunyai pelbagai jenis bot perangkak web untuk disekat

Memandangkan senarai hitam ejen pengguna boleh menjadi sangat besar, jadi meletakkannya dalam pelayan sebahagian daripada nginx bukan idea yang baik, sebaliknya, anda boleh membuat fail berasingan di mana anda menyenaraikan semua ejen pengguna yang disekat dalam format berikut.                                                                                                                                                                                                                                                                                                          

Serupa kepada konfigurasi sebelumnya, '~*' akan memadankan kata kunci dalam cara tidak peka huruf besar-besaran, manakala '~' akan memadankan kata kunci menggunakan ungkapan biasa sensitif huruf besar-besaran. Baris "default 0" bermakna mana-mana ejen pengguna yang tidak disenaraikan dalam fail lain akan dibenarkan.

Seterusnya, buka fail konfigurasi nginx tapak web anda, cari bahagian yang mengandungi http, dan kemudian tambahkan baris berikut di suatu tempat dalam bahagian http.

Salin kod Kod adalah seperti berikut:

http {
     .....
                                                                                                                                              , pernyataan sertakan mesti dipaparkan sebelum bahagian pelayan (itulah sebabnya kami menambah ke bahagian http).

Sekarang, buka bahagian konfigurasi nginx yang mentakrifkan pelayan anda dan tambah pernyataan if berikut:

Salin kod Kod adalah seperti berikut: 🎜> if ($badagent) {

return 403;

}

....

}


Akhir sekali, muat semula nginx.

 $ sudo /path/to/nginx -s reload

Kini, mana-mana ejen pengguna yang mengandungi kata kunci yang disenaraikan dalam /etc/nginx/useragent.rules akan diharamkan secara automatik oleh nginx.

Atas ialah kandungan terperinci Bagaimana untuk memintas ejen pengguna tertentu dalam Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam