Cross-Site Scripting (XSS) là một lỗ hổng bảo mật phổ biến trong các ứng dụng web, cho phép tấn công viết và thực thi mã JavaScript trên trình duyệt của người dùng từ một nguồn bên ngoài, thường là từ một trang web khác.
Khi một ứng dụng web không kiểm tra và xử lý đầu vào của người dùng đúng cách, kẻ tấn công có thể chèn mã độc vào trong một trang web và lừa người dùng truy cập vào đó. Mã độc này sẽ được thực thi trên trình duyệt của người dùng, cho phép kẻ tấn công lấy được thông tin cá nhân hoặc thực hiện các hành động trái phép thay mặt người dùng.
Có ba loại XSS: reflected XSS, stored XSS và DOM-based XSS. Reflected XSS xảy ra khi đầu vào của người dùng được phản ánh trực tiếp trên trang web. Stored XSS xảy ra khi đầu vào của người dùng được lưu trữ trên máy chủ và hiển thị cho các người dùng khác. DOM-based XSS xảy ra khi mã độc được thực thi trên trình duyệt của người dùng bằng cách thao tác trên cấu trúc DOM của trang web.
Để phòng chống XSS, các lập trình viên cần phải kiểm tra và xử lý đầu vào của người dùng đúng cách, sử dụng các phương pháp như mã hóa đầu vào, lọc đầu vào hoặc sử dụng các thư viện bảo mật.