Menerapkan fungsi htmlspecialchars() untuk mencegah serangan Cross-site Scripting (XSS) dan HTML injection


Fungsi htmlspecialchars() PHP
Fungsi htmlspecialchars() - Dukungan ITQ


Bagaimana fungsi htmlspecialchars() bekerja ?

Fungsi htmlspecialchars() biasanya digunakan untuk mengubah (convert) sebuah nilai yang berupa karakter – karekter menjadi entitas , code atau tag dalam bentuk HTML. Tidak semua karakter yang mempunya nilai yang dapat di konversikan kedalam bentuk tag HTML, Berikut dibawah ini adalah contoh karakter yang nilainya dapat di konversikan dalam tag HTML :

& (ampersand) menjadi &
(double quote) menjadi "
(single quote) menjadi
< (less than) menjadi &lt;
> (greater than) menjadi &gt;

Contoh kegunaan  fungsi htmlspecialchars() dalam kode berikut dibawah ini :

<?php
	$nilai = "AKU&KAU";
	$nilai_baru = htmlspecialchars($nilai);
	// Maka output hasil yang ditampilkan akan menjadi seperti ini : AKU&amp;KAU
?>

Nilai & pada string AKU&KAU setelah melewati fungsi htmlspecialchars() menjadi AKU&amp;KAU , Nilai & ter konversi menjadi &amp; 

Apa itu serangan XSS dan HTML Injection ?

XSS (Cross-site Scripting) adalah sebuah serangan yang dilakukan dengan cara ‘menyisipkan’ sebuah kode atau script (umumnya adalah javascript) kedalam sebuah situs web atau aplikasi melalui sebuah form. Form yang dimaksud bisa jadi form register , kontak , dan informasi lainnya yang ditampikan dalam sebuah form.

Jika sebelumnya XSS melakukan serangan dengan javascript maka HTML Injection juga memiliki pola serangan yang sama hanya saja lebih spesifik menggunakan kode atau tag HTML yang di sisipkan kedalam form.

Apa yang terjadi jika terkena serangan XSS dan HTML Injection ?

Biasanya jika serangan XSS dan HTML Injection berhasil dilakukan maka bisa menyebabkan aplikasi nya berjalan tidak normal , berat saat diakses ataupun jadi menampilkan pesan error. Karena secara tidak langsung jika script injection tersebut berhasil masuk kedalam sistem saat aplikasi dijalankan tentu akan mengakibatkan kesalahan dalam pembacaan kode program terlebih yang di inject scriptnya bersifat looping (putaran) terus menerus yang tidak berhenti sehingga dapat dipastikan aplikasi kita akanberat diakses dan bisa menjadi error.

Mengamankan aplikasi dari serangan XSS maupun HTML Injection ini sangat perlu dilakukan dan sangat penting terutama pada bagian form yang setiap saat dapat di isi oleh siapapun pengguna nya. Salah satu cara penanganannya adalah dengan memvalidasi atau proteksi hasil input form yang dilakukan user.


Fungsi htmlspecialchars() dapat mencegah serangan XSS dan HTML Injection

Metode validasi atau proteksi pada hasil input form untuk mengamankan sistem dari serangan XSS dan HTML Injection salah satunya adalah dengan menerapkan fungsi htmlspecialchars(). Karena fungsi dari htmlspecialchars() tersebut akan mengubah karakter – karekter dari hasil input form tersebut yang diketahui tidak sesuai penggunaannya menjadi sebuah entitas kode yang baru sebelum diteruskan kedalam sistem contoh seperti yang dituliskan pada bagian awal artikel misalnya :

Yang di input oleh user pada form adalah : AKU<script>KAMU , maka isi yang akan diteruskan ke server setelah melalui fungsi htmlspecialchars() akan menjadi : AKU&lt;script&gt;KAMU.

Sehingga tidak menggangu jalannya aplikasi ketika data hasil input form tersebut ditampikan kembali.

Jika dalam kondisi tertentu kamu tidak ingin menyimpannya kedalam sistem , dan ingin menampilkan hasil inputnya tersebut kedalam bentuk semula lagi setelahmelalui fungsi htmlspecialchars() , maka tinggal menggunakan fungsi decode nya atau lengkapnya htmlspecialchars_decode() untuk mengembalikannya ke nilai default (awal) kembali.

Penutup

Demikian artikel ini ditulis dan tentunya artikel ini masih jauh dari kata sempurna, Mohon masukkan sarannya dan Silahkan jika anda ingin berkomentar dibawah ini.

Berlangganan Artikel Kami

Mendukung Solusi IT untuk semua orang
Back to top