Serangan suntikan XML ialah kaedah serangan rangkaian biasa, di mana penyerang menghantar kod XML yang disuntik secara berniat jahat kepada aplikasi untuk mendapatkan akses tanpa kebenaran atau melakukan operasi berniat jahat. Nginx ialah pelayan web popular dan pelayan proksi terbalik yang boleh melindungi daripada serangan suntikan XML dalam pelbagai cara.
Semua input data ke pelayan, termasuk input XML, harus ditapis dan disahkan. Nginx menyediakan beberapa modul terbina dalam yang boleh mengesahkan permintaan sebelum memproksinya ke perkhidmatan backend. Salah satu modul ialah ngx_http_lua_module, yang menyediakan sokongan bahasa Lua tertanam dan boleh menulis skrip pengesahan permintaan tersuai untuk dilaksanakan pada pelbagai peringkat permintaan. Contohnya, semasa fasa capaian, kod Lua boleh digunakan untuk memeriksa input bagi mengenal pasti kod XML berniat jahat.
Kerentanan Entiti Luar XML (XEE) meluas dan penyerang boleh menghantar muatan XML yang direka khas untuk mengeksploitasi XEE Kerentanan mendapatkan maklumat sensitif daripada pelayan atau melakukan serangan. Nginx menyediakan modul terbina dalam yang dipanggil ngx_http_xml_module yang boleh digunakan untuk membolehkan penapis XEE menghalang jenis serangan ini. Modul ini boleh menyemak entiti luaran dalam dokumen XML sebelum memproksi permintaan kepada perkhidmatan bahagian belakang dan membuang permintaan jika masalah ditemui. Anda boleh mendayakan penapisan XEE menggunakan arahan berikut:
xml_parser on; xml_entities on;
Penyerang boleh menghantar jenis dokumen XML yang tidak diketahui ke pelayan, untuk mengeksploitasi kelemahan dalam penghurai sebelah pelayan. Untuk mengelakkan jenis serangan ini, anda boleh menentukan jenis dokumen XML untuk diterima menggunakan arahan berikut:
xml_known_document_types application/xml application/xhtml+xml image/svg+xml text/xml text/html;
Secara lalai, Nginx hanya menerima dokumen XML jenis aplikasi/xml dan teks/xml, semua jenis lain. Semua akan ditolak.
Jika penyerang menghantar sejumlah besar data XML, pelayan mungkin mengalami masalah prestasi atau ranap sistem. Untuk mengelakkan ini daripada berlaku, anda harus menetapkan saiz maksimum untuk permintaan HTTP untuk mengehadkan saiz XML. Saiz maksimum permintaan XML boleh ditetapkan menggunakan arahan berikut:
client_max_body_size 1m;
Ini akan mengehadkan saiz maksimum permintaan XML kepada 1MB.
Menyemak permintaan dalam log boleh membantu anda mengesan kemungkinan serangan tepat pada masanya dan mengambil langkah yang sewajarnya. Nginx menyediakan modul terbina dalam yang dipanggil ngx_http_log_module yang boleh merekodkan maklumat yang diminta ke fail log. Anda boleh mendayakan modul pengelogan menggunakan arahan berikut:
access_log /var/log/nginx/access.log;
Kesimpulan
Nginx ialah pelayan web popular dan pelayan proksi terbalik yang boleh melindungi daripada serangan suntikan XML dalam pelbagai cara. Adalah disyorkan agar anda mengambil langkah berjaga-jaga di atas apabila menggunakan Nginx untuk mengurangkan risiko kelemahan keselamatan.
Atas ialah kandungan terperinci Bagaimana Nginx melindungi daripada serangan suntikan XML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!