Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang · Pelajaran

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.

Pelajaran 4 daripada 413 langkah

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 out

Gunakan 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
Percuma untuk bermula

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

  1. Pencegahan Suntikan SQL
  2. Suntikan Perintah dan Kod
  3. Skrip Rentas Tapak (XSS) dalam Bahagian Belakang
  4. Mencegah Suntikan XML dan LDAP
← Kembali ke Pengekodan Selamat dan OWASP Top 10 untuk Bahagian Belakang