Mencegah Bug XSS pada Search Engine

XSS adalah suatu cara memasukan code/script HTML kedalam suatu web site dan dijalankan melalui browser di client (echo.or.id).

Kepanjangan XSS adalah Cross Site Scripting, lho kenapa Cross disingkat jadi X?, jawabannya adalah karena singkatan CSS sudah dipakai oleh Cascading Style Sheet.

Search engine yang saya maksudkan bukanlah Google, Yahoo, dll, tapi search engine buatan sendiri yang biasa digunakan untuk mencari informasi pada suatu website.

Cara mengetahui adanya bugs ini adalah dengan memasukkan tag HTML ke search box, misalnya <h1>Test</h1> .
Jika hasil pencarian berubah menjadi heading level 1 (huruf menjadi besar) berarti ada bugs XSS pada web tersebut.

Cara Pencegahan

Bugs ini terjadi karena kesalahan programmer yang tidak melakukan filter terhadap apa yang diketikkan user saat menasukkan input.

Akibatnya user bisa dengan mudah menyisipkan berbagai kode ke search box tersebut. Ternyata tidak tag HTML saja yang bisa disisipkan ke search box, Javascript dan Client Side Programming lainnya pun bisa apabila browser memang mendukung.

Cara mencegahnya adalah dengan menghapus atau mengganti tag HTML yang di inputkan oleh user.

Filter Menggunakan PHP

PHP mempunyai beberapa fungsi yang bermanfaat untuk men-filter input dari user.
Contohnya strip_tags() dan htmlentities() .

Kedua fungsi terstbu mempunyai kegunaan yang berbeda, strip_tags() berfungsi untuk menghapus tag HTML sedangkan htmlentities() untuk mengganti tag HTML dengan HTML Entities.

Berikut ini contoh source codenya

<?php
//Variabel yang akan di filter
$str = '<h1>Test</h1>';

echo 'Filter menggunakan strip_tags() : ';
echo strip_tags($str);
echo '<br /><br />';
echo 'Filter menggunakan htmlentities() : ';
echo htmlentities($str);
?>

Output dari kode diatas

Filter menggunakan strip_tags() : Test

Filter menggunakan htmlentities() : <h1>Test</h1>

Bisa dilihat dari output diatas bahwa fungsi strip_tags() digunakan untuk menghilangkan tag HTML dan htmlentities() digunakan untuk mengganti tag HTML menjadi HTML Entities.

Subscribe via Email
Dapatkan akses ekslusif untuk tips, panduan, artikel, dan banyak lagi.
Yoga

Artikel Terbaru

Cara Memperbaiki USB Ethernet Adapter Macbook yang Tidak Konek

Setelah upgrade ke MacOS ke versi terbaru tiba-tiba USB ethernet adapter Macbook tidak bisa digunakan…

Tips Mengatasi Failed To Create Bus Connection: No Such File or Directory

Kalalu server kamu mengalami pesan error seperti ini failed to create bus connection: no such…

Cara Menggunakan Plugin IndexNow Dari Microsoft Bing

Dengan menggunakan plugin IndexNow, setiap halaman yang ada di WordPress akan disubmit otomatis ke Bing…

Cara Uninstal Aplikasi Di MacBook Pro, Air, iMac, Dkk

Pelajari lebih lanjut mengenai beberapa cara uninstal aplikasi di Macbook Pro, Macbook Air, iMac, Mac…

Cara Memperbaiki Error Duplicate Field “HowTo”

Situs kamu memiliki error duplicate field "HowTo" di Google Search Console? Berikut cara memperbaiki error…

AMP: A mandatory attribute is missing from an HTML tag

Berikut cara memperbaiki error A mandatory attribute is missing from an HTML tag, yang ada…