XSS Prevention

February 21, 2019

DMCA.com Protection Status

setelah sedikit membahas XSS di sini, ya meskipun agak ngawur saatnya kita bahas cara mencegah bug ini ada pada web kita

XSS bisa berjalan / dijalankan karena tag <script> yang lepas dan berjalan / terender oleh browser maka dari itu kita manipulasi browser agar tidak menjalankan tag html yang diinputkan user, eitsss kita ga akan bongkar-bongkar browser kok, cuman sedikit permainan sebelum input user di munculkan pada website

example:

<?php
echo $_GET['q'];
?>

input : <script>alert("XSS")</script>
output: <script>alert("XSS")</script> //pop up XSS akan muncul


untuk preventionnya kita bisa pake beberapa fungsi php yang sudah ada

<?php
echo strip_tags($_GET['q']);
?>

input : <script>alert("XSS")</script>
output: alert("XSS") //tag html akan dihilangkan
namun kode diatas masih kurang untuk mengatasi xss ini, mengapa ?


<?php
echo '<input type="text" value="'.strip_tags($_GET['q']).'">';
?>

input : " onmouseover="alert('XSS')
output: <input type="text" value="" onmouseover="alert('XSS')">
dengan input diatas maka ketika mouse menghover ke input text pop up XSS akan muncul
lalu bagaimana agar tidak terkena macam-macam bypass seperti ini ?


<?php
echo '<input type="text" value="'.htmlentities(strip_tags($_GET['q'])).'">';
?>

input : " onmouseover="alert('XSS')
output: <input type="text" value="&quot; onmouseover=&quot;alert(1)"> //tanda petik berubah menjadi &quot;

well menurut saya dengan menggunakan kedua fungsi tersebut sudah cukup untuk mencegah terjadinya XSS pada website, namun jika pada kolom pencarian memang memerlukan tanda < dan > kita bisa menggunakan preg_replace() untuk menghapus semua kata yang mengandung unsur XSS, seperti script, javascript, onerror, onmouseover, onload dsb

bagaimana menurutmu ? apakah kamu memiliki cara lain untuk menghindari XSS ini ? silahkan share di kolom komentar


comments powered by Disqus

Psst, Hey you → Click!