Point berikutnya dari OWASP top 10 adalah Cross-Site Scripting atau sering disingkat XSS attack. Kenapa tidak disingkat CSS, agar tidak tertukar dengan cascade style-sheet. Serangan ini ditujukan pada web. XSS dilakukan dengan melakukan injeksi kode client side script pada sebuah web. Kode injeksi ini berbeda dengan injeksi kode SQL pada SQL injection. Dengan melakukan serangan ini, penyerang dapat mengambil session dari korban, melakukan deface website. memasukkan konten tertentu, redirect user dll.
Terdapat 3 macam XSS yaitu, stored, reflected dan DOM based xss. Untuk mengetahui apakah sebuah web memiliki celah keamanan ini, bisa dilakukan dengan code analysis, dengan pengujian memasukkan script code tertentu , selain itu terdapat juga beberapa tools yang bisa melakukan deteksi secara automatis. Untuk mencegah serangan ini bisa dilakukan validasi input, whitelist maupun sanitasi input. Sanitasi bisa digunakan dengan menggunakan library OWASP anti Sammy atau Java HTML Sanitizer Project
OWASP telah menyiapkan beberapa dokumen yang dapat digunakan untuk mempelajari pencegahan serangan ini, bisa dilihat pada link berikut:
ASVS: Output Encoding/Escaping Requirements (V6)
OWASP AntiSamy: Sanitization Library
Testing Guide: 1st 3 Chapters on Data Validation Testing
OWASP Code Review Guide: Chapter on XSS Review