XSS

XSS (Cross-site scripting) là lỗ hổng bảo mật web cho phép kẻ tấn công chèn script độc hại vào website. Tìm hiểu XSS là gì, cách thức tấn công, hậu quả và các phương pháp phòng chống hiệu quả.

XSS

XSS là gì?

XSS (Cross-site Scripting) là một dạng tấn công web phổ biến, trong đó hacker chèn mã JavaScript độc hại vào website thông qua input người dùng. Khi người dùng khác truy cập trang web này, script sẽ thực thi ngay trên trình duyệt của họ, dẫn tới nhiều hậu quả nghiêm trọng.

Cách hoạt động của tấn công XSS

Ví dụ một form bình luận:

<script>alert('XSS Attack!');</script>

Nếu website không xử lý đúng cách, đoạn script này sẽ được lưu vào cơ sở dữ liệu và khi người khác truy cập trang chứa bình luận, script sẽ chạy và gây hại.

Hậu quả của XSS

  • Đánh cắp cookie/session để chiếm tài khoản
  • Thực thi mã JavaScript nguy hiểm trên trình duyệt người dùng
  • Redirect người dùng đến trang độc hại
  • Lừa đảo, giả mạo website

Các dạng XSS phổ biến

Dạng tấn công XSS Mô tả
Stored XSS (Persistent) Script được lưu trong database, ảnh hưởng lâu dài và nghiêm trọng nhất.
Reflected XSS (Non-persistent) Script nằm trong URL hoặc form submission, ảnh hưởng ngay lập tức khi user truy cập link độc hại.
DOM-based XSS Xảy ra khi script độc hại được thực thi thông qua DOM manipulation từ phía client (frontend).

Cách phòng chống XSS hiệu quả

  • Luôn validate và sanitize đầu vào từ người dùng
  • Dùng các thư viện như DOMPurify (JS), HTMLPurifier (PHP) để lọc nội dung
  • Dùng HTTP header như Content-Security-Policy (CSP)
  • Sử dụng framework hiện đại (React, Vue, Angular…) xử lý tự động
  • Bật HttpOnly cookie để hạn chế script lấy cắp cookie

Ví dụ thực tế: validate input PHP chống XSS

// Lọc input để chống XSS
$input = htmlspecialchars($_POST['comment'], ENT_QUOTES, 'UTF-8');
echo $input;

Dùng CSP để chống XSS

CSP giới hạn nguồn tài nguyên JS thực thi trên web:

Content-Security-Policy: script-src 'self';

Chỉ cho phép chạy script từ chính domain, ngăn script từ bên ngoài.

Công cụ kiểm tra lỗ hổng XSS

  • OWASP ZAP
  • Burp Suite
  • XSSer, XSStrike

Kết luận

XSS là lỗ hổng web cực phổ biến và rất nguy hiểm, nhưng hoàn toàn có thể phòng ngừa. Bằng cách xử lý kỹ lưỡng input, dùng thư viện sanitize và áp dụng CSP, bạn sẽ bảo vệ được người dùng và website khỏi nguy cơ XSS tấn công.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...