Open VladRafli opened 2 years ago
Habis quiz mata kuliah Secure Progamming, untuk mencegah terjadinya XSS, pake fungsi dibawah:
Recomend pakai htmlentities, karena tag html yang masuk ke input semua diconvert jadi bukan tag html lagi, termasuk simbol. Jadi kalo memang perlu simbol seperti tanda petik dua, bisa lihat referensi dari dokumentasinya.
Contoh:
Dari dokumentasi
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
Contoh XSS
// Keluarin cookie dari dokumen untuk curi cookie nya,
// Nanti cookie nya bisa dipake untuk masuk website tanpa login
$str = "<script>alert(document.cookie)</script>";
// Outputs: <script>alert(document.cookie)</script>
echo htmlentities($str);
// Jadi kalo itu masuk ke database atau ditampilin ke dalem page,
// Script ga bakalan ke execute
https://github.com/VladRafli/o-semar/commit/f55410462018ae4e7c585433e24f04e41387c0aa
Mitigasi vulnerability ini untuk API
Problem
Input Form belum di-sanitize
Solution
Dari comment dibawah