htmlspecialchars() hanya mengubah 5 karakter khusus HTML: & menjadi &, < menjadi <, > menjadi >, " menjadi ", dan ' menjadi ' — setara dengan mode Encode Essential di tool ini. htmlentities() mengubah semua karakter yang memiliki HTML entity equivalent, termasuk karakter beraksent seperti é menjadi é — setara dengan mode Encode All. Untuk XSS prevention, htmlspecialchars() sudah cukup dan lebih direkomendasikan.
XSS (Cross-Site Scripting) adalah serangan di mana penyerang menyisipkan kode JavaScript berbahaya ke dalam halaman web melalui input user. Contoh: jika user input "<script >alert("hacked")< /script>" langsung ditampilkan tanpa encoding, browser akan mengeksekusi script tersebut. Dengan HTML encoding, < menjadi < dan > menjadi > — browser menampilkannya sebagai teks biasa, bukan kode yang dieksekusi.
Ya, karakter & dan tanda kutip dalam atribut HTML harus di-encode. Contoh: href="search?q=hello&world" salah — harus href="search?q=hello&world". Tanda kutip di dalam atribut yang dibungkus tanda kutip yang sama juga harus di-encode: title="it's fine" atau ditulis dengan jenis kutip berbeda: title='it"s fine'. Mode Encode Essential di tool ini menangani semua kasus ini.