Cara Mengatasi Bug XSS (Cross-Site Scripting) pada PHP

Memperbaiki Bug XSS ( Cross-Site Scripting ) Pada Website PHP
XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya. ( Wikipedia )

Menurut pengertian diatas XSS merupakan Bug/Vulnerability yang sangat berbahaya karena bug ini bisa digunakan untuk berbagai macam kejahatan seperti :
  • Menyebarkan Virus.
  • Mencuri Password/Data sensitif pengguna ( Phising )
  • Merusak SEO ( Search Engine Optimiziation ) Pada Website.
  • Bahkan merusak reputasi web anda, apalagi jika web anda adalah web e-commerce.
Pada umumnya XSS ( Cross-Site Scripting ) menyerang pada website melalui :
  • Forms/Input. Seperti Kolom Pencarian, Komentar, Login, Pendaftaran.
Pada artikel ini saya akan memberitahu bagaimana cara menghindari/mengatasi/memperbaiki bug XSS ( Cross-Site Scripting ) pada PHP.
XSS ini disebabkan oleh tidak adanya filter/penyaringan pada kode PHP, berikut contoh kode PHP yang Vulnerable terhadap bug XSS :

<?php
$komentar = $_POST['komentar']; // "<script>alert('bug xss');</script>"
echo $komentar; //  browser memberi sebuah alert/dialog 'bug xss'.
?>

Kode diatas sangat ( telanjang ) sekali menurut saya karena tidak ada filter/konversi pada saat pengambilan data ( echo $komentar; ), pengguna/penyerang bisa saja dengan leluasa menyisipkan sebuah kode jahat berupa javascript/iframe, Hasil dari kode diatas :
Memperbaiki Bug XSS ( Cross-Site Scripting ) Pada Website PHP
Memperbaiki Bug XSS ( Cross-Site Scripting ) Pada Website PHP

Untuk Memperbaiki bug tersebut maka diperlukan tambahan pada kode PHP nya seperti htmlspecialchars($string, ENT_QUOTES), sehingga kodenya menjadi seperti ini :

<?php
$komentar = $_POST['komentar']; // <script>alert('bug xss');</script>
echo htmlspecialchars($komentar, ENT_QUOTES);
//browser tidak memberi sebuah alert/dialog 'bug xss'.
//lantas dikonvert menjadi kode HTML entities.
 ?>

Kode diatas berguna untuk meng-konvert setiap kode html/javascript yang di masukkan oleh pengguna/attacker. berikut hasil dari kode diatas :
Memperbaiki Bug XSS ( Cross-Site Scripting ) Pada Website PHP
Memperbaiki Bug XSS ( Cross-Site Scripting ) Pada Website PHP
Kode PHP/browser akan menampilkan output/kode yang telah dimasukkan/sisipkan oleh pengguna/penyerang, tidak mengeksekusinya.

Sekarang website PHP anda aman terhadap serangan/bug XSS ini, Semoga bermanfaat. :-)

*Jika ada pertanyaan/tambahan yang ingin disampaikan, silahkan sampaikan melalui kolom komentar dibawah. :)
Previous
Next Post »

6 comments

Click here for comments
June 19, 2016 at 3:57 PM ×

ohh begitu yaa terimakasih infonya mas

Reply
avatar
Kang Admin
admin
June 19, 2016 at 6:30 PM ×

Bagus gan makasih infonya

Reply
avatar
Icha Permata
admin
June 19, 2016 at 7:57 PM ×

Wah..tar saya praktekin ke project web saya

Reply
avatar
Ryan C
admin
June 19, 2016 at 8:36 PM ×

Sama sama mas :)

Reply
avatar
Ryan C
admin
June 19, 2016 at 8:36 PM ×

Terma Kasih kembali gan :)

Reply
avatar
Ryan C
admin
June 19, 2016 at 8:37 PM ×

Sukses gan buat projek web nya :)

Reply
avatar
Thanks for your comment
z35W7z4v9z8w