Lỗ hổng Cross Site Scripting (XSS) phát sinh khi dữ liệu đầu vào của người dùng được sử dụng trong các câu lệnh xuất HTML mà không quan kiểm tra hoặc thoát ký tự đúng cách. Nó cho phép kẻ tấn công thực thi các tập lệnh trên trình duyệt của nạn nhân, có thể chiếm quyền điều khiển phiên làm việc của người dùng, làm thay đổi giao diện trang web hoặc chuyển hướng người dùng đến các trang web độc hại. Hãy xem xét đoạn mã sau:
Vì tham số đầu vào $_GET không được kiểm tra nên có thể thực hiện một cuộc tấn công XSS bằng cách cung cấp cho tham số new_user các giá trị sau:
<script>alert(document.cookie);</script>
Khi trình duyệt của nạn nhân thực thi tập lệnh do máy chủ gửi, nó sẽ hiển thị giá trị cookie của người dùng mới thay vì thông tin người dùng dự định. Sử dụng một tập lệnh độc hại hơn, việc chuyển hướng đến máy chủ của kẻ tấn công cũng có thể xảy ra và thông tin nhạy cảm của người dùng có thể bị chuyển hướng. Giống như echo, bất kỳ cấu trúc ngôn ngữ hoặc hàm nào khác như print tạo ra đầu ra HTML đều có thể gây ra XSS.
Tài liệu tham khảo
1. L. K. Shar, L. C. Briand and H. B. K. Tan, "Web Application Vulnerability Prediction Using Hybrid Program Analysis and Machine Learning," in IEEE Transactions on Dependable and Secure Computing, vol. 12, no. 6, pp. 688-707, 1 Nov.-Dec. 2015, doi: 10.1109/TDSC.2014.2373377,