Kesan
Penyerang yang berjaya mengeksploitasi kerentanan Skrip Merentas Tapak (XSS) boleh menyamar sebagai pengguna mangsa, melakukan sebarang tindakan yang dibenarkan oleh pengguna untuk melakukan dan mengakses mana-mana data pengguna [S1]. Ini termasuk mencuri kuki sesi untuk merampas akaun, menangkap bukti kelayakan log masuk melalui borang palsu atau melakukan kerosakan maya [S1][S2]. Jika mangsa mempunyai keistimewaan pentadbiran, penyerang boleh mendapat kawalan penuh ke atas aplikasi dan datanya [S1].
Punca Punca
XSS berlaku apabila aplikasi menerima input yang boleh dikawal pengguna dan memasukkannya ke dalam halaman web tanpa peneutralan atau pengekodan yang betul [S2]. Ini membolehkan input ditafsirkan sebagai kandungan aktif (JavaScript) oleh penyemak imbas mangsa, memintas Dasar Asal Sama yang direka untuk mengasingkan tapak web antara satu sama lain [S1][S2].
Jenis Kerentanan
- Tercermin XSS: Skrip hasad dicerminkan dari aplikasi web ke penyemak imbas mangsa, biasanya melalui parameter URL [S1].
- XSS disimpan: Skrip disimpan secara kekal pada pelayan (cth., dalam pangkalan data atau bahagian ulasan) dan disampaikan kepada pengguna kemudian [S1][S2].
- XSS berasaskan DOM: Kerentanan wujud sepenuhnya dalam kod sisi klien yang memproses data daripada sumber yang tidak dipercayai dengan cara yang tidak selamat, seperti menulis kepada
innerHTML[S1].
Pembetulan Konkrit
- Enkodkan Data pada Output: Tukar data yang boleh dikawal pengguna ke dalam bentuk yang selamat sebelum memberikannya. Gunakan pengekodan entiti HTML untuk badan HTML dan pengekodan JavaScript atau CSS yang sesuai untuk konteks khusus tersebut [S1][S2].
- Tapis Input semasa Ketibaan: Laksanakan senarai dibenarkan yang ketat untuk format input yang dijangkakan dan tolak apa-apa yang tidak mematuhi [S1][S2].
- Gunakan Pengepala Keselamatan: Tetapkan bendera
HttpOnlypada kuki sesi untuk menghalang akses melalui JavaScript [S2]. GunakanContent-TypedanX-Content-Type-Options: nosniffuntuk memastikan penyemak imbas tidak menyalahtafsirkan respons sebagai kod boleh laku [S1]. - Dasar Keselamatan Kandungan (CSP): Gunakan CSP yang kuat untuk menyekat sumber dari mana skrip boleh dimuatkan dan dilaksanakan, menyediakan lapisan pertahanan mendalam [S1]XBXCVIKVIX1Z
Bagaimana FixVibe mengujinya
FixVibe boleh mengesan XSS melalui pendekatan berbilang lapisan berdasarkan metodologi pengimbasan yang ditetapkan [S1]:
- Imbasan Pasif: Mengenal pasti pengepala keselamatan yang hilang atau lemah seperti
Content-Security-PolicyatauX-Content-Type-Optionsyang direka bentuk untuk mengurangkan XSS [S1]. - Probe Aktif: Menyuntik rentetan alfanumerik yang unik dan tidak berniat jahat ke dalam parameter URL dan medan borang untuk menentukan sama ada ia ditunjukkan dalam badan tindak balas tanpa pengekodan yang betul [S1].
- Repo Scans: Menganalisis JavaScript sisi pelanggan untuk "sink" yang mengendalikan data yang tidak dipercayai dengan tidak selamat, seperti
innerHTML,document.writeatausetTimeout, yang merupakan penunjuk biasa bagi DOM-BETOVIX4ZBECV berasaskan DOM [S1].
