flawopen.com/xss/Php
Learn how to fix Cross-Site Scripting (XSS) (CWE-79) in PHP. Side-by-side vulnerable vs secure code examples for htmlspecialchars(), Blade templates, and Twig escaping.
Bayangkan menempelkan catatan pada papan pengumuman umum yang bertuliskan: 'Siapa pun yang membaca ini, serahkan dompet Anda kepada orang di sebelah Anda'. Jika setiap pengunjung secara buta mematuhi catatan tersebut, pelaku dapat mencuri uang semua orang.
Web Application SecurityCWE-79.CWE-79Defense-in-DepthPenyerang menyisipkan tag HTML atau kode JavaScript (misal: <script> atau <img onerror=...>) ke dalam formulir atau URL.
Aplikasi menampilkan input langsung ke halaman HTML tanpa pengkodean entitas HTML sesuai konteks.
Saat korban mengunjungi halaman, browser menafsirkan karakter yang disuntikkan sebagai kode yang dapat dieksekusi.
Skrip berjalan dalam konteks kredensial korban, mencuri cookie autentikasi dan token penyimpanan lokal.
// $_GET value echoed with no encoding
echo "<div>Welcome, "
. $_GET['name'] . "</div>";
// value HTML-encoded before output
echo "<div>Welcome, " . htmlspecialchars(
$_GET['name'], ENT_QUOTES, 'UTF-8'
) . "</div>";