Cross-Site Scripting
Định nghĩa
Cross-Site Scripting (XSS) là attack trong đó attacker đưa script độc hại vào trang để chạy trong browser của user.
Cách hiểu bằng lời của tôi
XSS làm browser tin nhầm code của attacker là code của site. Khi chạy được trong context site, script có thể đánh cắp token/cookie không được bảo vệ, thao tác DOM hoặc gửi request thay user.
Dạng thường gặp
- Stored XSS: payload được lưu trong database rồi chạy cho nhiều user.
- DOM-based XSS: payload thao túng DOM phía browser mà không nhất thiết đi qua server.
Cách giảm rủi ro
- Escape output theo context.
- Sanitize HTML nếu phải cho phép rich text.
- Dùng Content Security Policy khi phù hợp.
- Dùng HttpOnly cookie để giảm khả năng script đọc token.