Jeffrey Cross
Jeffrey Cross

Hentikan serangan XSS dengan SafeHTML

Jika anda membenarkan kandungan yang disumbangkan oleh pengguna di laman web anda, anda menghadapi masalah untuk berurusan dengan HTML yang dibekalkan pengguna dengan selamat. Cara yang paling selamat untuk menangani sesuatu, tentu saja, adalah untuk menyekat atau melepaskan semua HTML dari medan input pengguna. Malangnya, terdapat banyak situasi di mana ia bagus untuk membolehkan sebahagian besar input HTML, tetapi menghalang apa-apa yang berpotensi berbahaya.

SafeHTML adalah sanitizer input pengguna PHP ringan yang tidak hanya itu. Jalankan sebarang medan input melalui penapis SafeHTML dan sebarang javascript, tag objek, atau tag peletakan susun atur akan dilucutkan dari teks yang dibekalkan. Ia juga melakukan kerja yang munasabah untuk membetulkan sebarang kod malar, yang salah, yang juga masalah biasa dengan data yang disumbangkan oleh pengguna.

Menggunakannya adalah mudah. Hanya instantiate objek SafeHTML dan panggil kaedah parsenya:

require_once ('classes / safehtml.php');

$ safehtml = & SafeHTML baru ();

jika (isset ($ _POST ["inputfield"])) {$ inputfield = $ _ POST ["inputfield"]; $ cleaninput = $ safehtml-> parse ($ inputfield); }

Ini akan mengambil parameter "inputfield" yang diposting, strip mana-mana penjahat, XHTMLify apa yang tersisa, dan hasilnya akan disimpan dalam pembolehubah cleaninput $. Ia adalah satu tambahan yang mudah untuk kod anda, dan jauh lebih mudah daripada cuba untuk menggulung anda sendiri.

Satu-satunya daging lembu saya dengan pakej adalah bahawa ia ditulis dengan dasar membenarkan dasar, menanggalkan teg yang berada dalam array deleteTags, tetapi pada dasarnya membenarkan apa-apa lagi melalui. Jika anda lebih suka hanya membiarkan melalui teg yang anda mahu membenarkan, saya akan mengesyorkan menambah array allowTags dan melaraskan kaedah _openHandler, menambahkan yang berikut selepas memadamTentang cek:

jika (! in_array ($ name, $ this-> allowTags)) {return true; }

Anda perlu mengisi permitTeg dengan semua yang anda tahu selamat dan dialu-alukan, dan anda mungkin merindui beberapa orang yang akhirnya mahu menggunakan sah, tetapi ini mudah diperbetulkan dan dasar menafikan lalai adalah lebih selamat dalam jangka masa panjang .

SafeHTML - parser HTML anti-XSS yang ditulis dalam PHP

Kongsi

Meninggalkan Komen