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

Bagaimana untuk memintas ejen pengguna tertentu dalam Nginx

WBOY
Lepaskan: 2023-05-13 10:25:05
ke hadapan
1316 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk

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

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

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
Salin selepas log masuk
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan