Tìm hiểu các dạng tấn công XSS (Cross-Site Scriting) và biện pháp phòng chống cho lỗ hổng này trên ứng dụng web.
2.3. DOM-base XSS
DOM - Document Object Model là một dạng chuẩn của W3C đưa ra nhằm để truy xuất và thao tác dữ liệu của tài liệu có cấu trúc như HTML, XML. Tấn công DOM-base XSS liên quan tới việc cá mã script máy khách trong một rang web sử dụng các đối tượng của DOM , như "document.URL" và "document.location".
2.3. DOM-base XSS
DOM - Document Object Model là một dạng chuẩn của W3C đưa ra nhằm để truy xuất và thao tác dữ liệu của tài liệu có cấu trúc như HTML, XML. Tấn công DOM-base XSS liên quan tới việc cá mã script máy khách trong một rang web sử dụng các đối tượng của DOM , như "document.URL" và "document.location".
Lỗi DOM XSS có thể xuất hiện trong trường hợp các mã script sử dụng các đối tượng DOM để ghi mã HTML mà không mã hóa các thể HTML đúng cách. Một dạng tấn công XSS dựa trên DOM liên quan đến việc sử dụng các trang web trên hệ thống file cục bộ của người dùng. Đây còn gọi là tấn công liên vùng (cross-zone attacks).
3. Cách phòng chống tấn công XSS
3.1. Sử dụng bộ lọc XSS
Lọc các dữ liệu nhập từ người dùng, loại bỏ các thẻ có thể hỗ trợ tấn công XSS. Điều này có thể ngăn chặn các cuộc tấn công XSS; gây khó khăn cho người dùng nhập các đoạn text hợp lệ.
Lưu ý khi sử dụng bộ lọc:
3. Cách phòng chống tấn công XSS
3.1. Sử dụng bộ lọc XSS
Lọc các dữ liệu nhập từ người dùng, loại bỏ các thẻ có thể hỗ trợ tấn công XSS. Điều này có thể ngăn chặn các cuộc tấn công XSS; gây khó khăn cho người dùng nhập các đoạn text hợp lệ.
Lưu ý khi sử dụng bộ lọc:
- Sử dụng các bộ lọc tự tạo hoặc từ thư viện để lọc bỏ các thẻ HTML/CSS/scripts khỏi dữ liệu nhập từ người dùng;
- Sử dụng biểu thức chính quy để tăng hiệu quả bộ lọc;
- Các bộ lọc cần được cập nhật thường xuyên để có thể theo kịp sự thay đổi của các kỹ thuật tấn công XSS mới;
- Các bộ lọc dữ liệu nhập phải được thực hiện trên máy chủ (vì nếu được thực hiện trên máy khách nó có thể bị vô hiệu hóa dễ dàng);
3.2. Thóa khỏi XSS
Vô hiệu hóa tấn công XSS bằng cách thay thế các ký tự riêng của HTML/scripts để chuyển các đoạn mã có thể thực hiện thành dữ liệu thông thường (kẻ tấn công có thể chèn mã nhưng trình duyệt không thực hiện nó do chúng bị chuyển thành dữ liệu thông thường). Với cách này sẽ giúp ngăn chặn tấn công XSS; vẫn cho người dùng nhập các đoạn text hợp lệ.
Nên sử dụng các thư viện chuẩn đã được test kỹ để thoát khỏi XSS. Chẳng hạn ESAPI cung cấp bởi OWASP hay AntiXSS cung cấp bởi Microsoft.
Kết luận:
Tấn công XSS là một trong những dạng tấn công nguy hiểm nhất trên các ứng dụng web. Khi kẻ tấn công có thể khai thác được điểm yếu này, chúng sẽ tìm cách thực hiện những mưu đồ xấu, gây mất danh tiếng, tổn hại tài chính của cả người dùng và doanh nghiệp. Do đó, để phòng chống tốt nhất, những người quản trị viên, lập trình viên nên tuân thủ các tiêu chuẩn, sử dụng các thư viện chuẩn được cung cấp để tạo ra những ứng dụng có tính bảo mật thông tin tốt nhất.
Tài liệu tham khảo:
http://infosecptit.com/webdbsecurity/
0 Comments