Mencegah Suntikan XML dan LDAP
Luaskan pertahanan suntikan melangkaui SQL dan arahan kepada XML (XXE) dan LDAP. Pelajari cara input tidak dipercayai merosakkan pentafsir ini serta cara meneutralkannya.
Mencegah Suntikan XML dan LDAP ialah pelajaran Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang merangkumi sejumlah 4 pelajaran.
Suntikan Melangkaui SQL
Anda telah melihat suntikan SQL, perintah dan XSS. Mana-mana pentafsir yang mencampurkan input yang tidak dipercayai dengan struktur berisiko diserang. Dua sasaran bahagian belakang yang sering terlepas pandang ialah penghurai XML dan direktori LDAP.
Apakah XXE
Suntikan Entiti Luaran XML (XXE) menyalahgunakan penghurai XML yang menyelesaikan entiti luaran. Penyerang mentakrifkan entiti yang membaca fail tempatan atau mengakses URL dalaman.
<!DOCTYPE x [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<data>&xxe;</data>Perkara yang Boleh Dilakukan oleh XXE
- Membaca fail sensitif daripada pelayan
- Melakukan pemalsuan permintaan sisi pelayan kepada perkhidmatan dalaman
- Menyebabkan penafian perkhidmatan melalui pengembangan entiti
Semuanya berpunca daripada ciri penghurai yang tidak diperlukan oleh kebanyakan aplikasi.
Lumpuhkan Entiti Luaran
Pembaikan utama ialah mengkonfigurasi penghurai supaya tidak menyelesaikan entiti luaran atau DTD. Satu tetapan ini sahaja dapat menutup XXE sepenuhnya.
factory.setFeature('http://apache.org/xml/features/disallow-doctype-decl', true);
factory.setExpandEntityReferences(false);Utamakan Format yang Lebih Selamat
Jika boleh, terima JSON dan bukannya XML — JSON tidak mempunyai konsep entiti dan tiada serangan yang setara. Jika anda mesti menerima XML, kunci konfigurasi penghurai terlebih dahulu.
Apakah Suntikan LDAP
Direktori LDAP ditanya menggunakan rentetan penapis. Jika input pengguna digabungkan ke dalam penapis, penyerang boleh mengubah logik pertanyaan — analog LDAP bagi suntikan SQL.
// vulnerable: input goes straight into the filter
filter = '(uid=' + username + ')'Pintas LDAP
Menghantar * atau admin)(&) sebagai nama pengguna boleh mengubah penapis yang tepat menjadi penapis yang sepadan dengan banyak entri atau sentiasa berjaya, lalu memintas pengesahan.
Lepaskan Aksara Khas LDAP
Nyahaktifkan makna aksara khas * ( ) \ NUL dengan melepaskannya sebelum aksara tersebut dimasukkan ke dalam penapis.
def escape(s):
out = ''
for ch in s:
if ch in '*()\\':
out += '\\' + format(ord(ch), '02x')
else:
out += ch
return outGunakan API Berparameter
Yang terbaik, gunakan API direktori yang menerima input sebagai parameter, bukannya membina rentetan penapis secara manual — prinsip yang sama menjadikan pernyataan SQL yang disediakan selamat.
Pertahanan Umum
Bagi SQL, perintah, XML dan LDAP, peraturannya sama: jangan benarkan input yang tidak dipercayai mengubah struktur pertanyaan atau dokumen. Asingkan kod daripada data dengan penggunaan parameter, pelepasan aksara atau konfigurasi penghurai yang selamat.
Pengesahan Senarai Benarkan
Tambahkan satu lapisan pertahanan dengan mengesahkan input berbanding senarai benarkan nilai yang boleh diterima sebelum input itu sampai kepada mana-mana pentafsir. Menolak aksara atau format yang tidak dijangka lebih awal dapat mengecilkan permukaan serangan bagi semua jenis suntikan serentak.
import re
if not re.fullmatch(r'[a-zA-Z0-9_.-]+', username):
raise ValueError('invalid username')Semakan Ringkas
Uji pertahanan suntikan anda.
Ulang Kaji
Anda telah meluaskan pertahanan suntikan kepada XML dan LDAP:
- XXE menyalahgunakan entiti luaran — lumpuhkan DTD dan penyelesaian entiti
- Suntikan LDAP memanipulasi penapis — lepaskan aksara khas atau gunakan API berparameter
- Peraturan sejagat: pastikan data yang tidak dipercayai tidak dimasukkan ke dalam struktur
Pelajari Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Mencegah Suntikan XML dan LDAP” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang, termasuk “Mencegah Suntikan XML dan LDAP”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mencegah Suntikan XML dan LDAP”?
Luaskan pertahanan suntikan melangkaui SQL dan arahan kepada XML (XXE) dan LDAP. Pelajari cara input tidak dipercayai merosakkan pentafsir ini serta cara meneutralkannya. Anda berlatih Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Mencegah Suntikan XML dan LDAP” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang ini?
Ya. Setiap pelajaran Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pencegahan Suntikan SQL
- Suntikan Perintah dan Kod
- Skrip Rentas Tapak (XSS) dalam Bahagian Belakang
- Mencegah Suntikan XML dan LDAP