Trong bài viết trước, Stringee đã cùng các bạn tìm hiểu về lỗ hổng bảo mật XSS, chúng ta đã cùng nhau đi qua các thông tin cần biết và tác động của lỗ hổng này. Trong bài viết này, Stringee sẽ cùng các bạn đi sâu tìm hiểu về tác động mà lỗ hổng này có thể gây ra và các cách phòng tránh nhé.
1. Tác động mà lỗ hổng XSS có thể gây lên website của bạn
Hacker khai thác lỗ hổng XSS trên nhiều trang web thường có thể:
- Mạo danh hoặc giả dạng người dùng của nạn nhân.
- Thực hiện bất kỳ hành động nào mà người dùng có thể thực hiện.
- Đọc bất kỳ dữ liệu nào mà người dùng có thể truy cập.
- Nắm bắt thông tin đăng nhập của người dùng.
- Thực hiện thay đổi bề mặt ảo của trang web.
- Chèn trojan độc hại vào trang web.
2. Phát hiện một cuộc tấn công XSS
Để kiểm tra khả năng bị tấn công, chúng ta cần phải xem các script đã nhập đã được phản hồi ra sao và các script đó có được thực thi hay không.
>>> Xem thêm bài viết:
- HTTP là gì? Tìm hiểu về giao thức HTTP và HTTPS
- HTTP request là gì? Các phương thức HTTP request
- Hướng dẫn cài đặt unix linux
Ví dụ: người dùng cố tính cập script <script>alert(‘hacked’)</script> vào một input form.
Nếu script này sau khi submit được thực thi, điều đó đồng nghĩa với việc một sự cố bảo mật bị tấn công bằng cách tận dụng XSS đã xảy ra. Tuy nó không mang lại nhiều hậu quả nhưng chúng ta có thể thấy được phương thức hành động và độ an toàn của website.
Ví dụ: người kiểm tra có thể cố gắng nhập tập lệnh trình duyệt như:
%3cscript%3ealert(document.cookie)%3c/script%3e
Một số người cố gắng bảo vệ các trang web và hệ thống khỏi các cuộc tấn công khác nhau bằng cách thay đổi dấu ngoặc thành hai dấu ngoặc.
Cách bảo vệ như trên được gọi là filtering, các ký tự đặc biệt đã được mã hóa hoặc thay thế để hạn chế rủi ro mà lỗ hổng này mang lại.
Nhìn chung, khi kiểm tra khả năng tấn công XSS, ta cần kiểm tra xác thực đầu vào và cẩn trọng các trường hợp mà output của trang web có thể xảy ra.
3. Các cách phòng tránh XSS
Cách tốt nhất để hạn chế tổn thất của các cuộc tấn công chính là việc chúng ta phòng tránh từ ngay ban đầu. Để phòng tránh được lỗ hổng này, chúng ta có thể sử dụng các biện pháp sau:
- Data validation (xác thực đầu vào): đảm bảo dữ liệu đầu vào được cung cấp là chính xác. Các giá trị đầu vào phải được kiểm tra là hợp lệ, không chứa các ký tự đặc biệt, có phù hợp với định dạng mong muốn hay không.
- Filtering (lọc đầu vào người dùng): biện pháp này giúp tìm kiếm những keyword nguy hiểm trong input của người dùng để có thể kịp thời thay thế hoặc xóa bỏ chúng. Chúng ta có thể sử dụng một số hàm có sẵn của js như htmlentities(), htmlspecialchars(), strip_tags() để mã hoá các ký tự đặc biệt thành các thực thể HTML.
- Output encoding (mã hóa đầu ra): giúp ngăn chặn trình duyệt thực thi các mã độc được chèn vào đầu ra của ứng dụng. Có thể sử dụng các hàm như json_encode(), base64_encode() để mã hoá các chuỗi đầu ra thành các định dạng khác nhau.
- Content Security Policy (chính sách bảo mật nội dung): Biện pháp này giúp chỉ định những nguồn nội dung nào được phép chạy trên trang web. Có thể sử dụng các tiêu đề HTTP như X-Content-Security-Policy, X-WebKit-CSP, Content-Security-Policy để thiết lập các quy tắc cho các nguồn nội dung khác nhau như script, style, image, media, v.v.
Kết bài
XSS là một trong những lỗ hổng bảo mật phổ biến và nguy hiểm nhất đối với các ứng dụng web. Nó cho phép hacker chèn và thực thi các mã độc trên trình duyệt của người dùng để đánh cắp thông tin, chiếm quyền truy cập hoặc làm hại nạn nhân. Trên đây cũng là các chia sẻ của Stringee tới các bạn về các cách phòng tránh tấn công bởi lỗ hổng bảo mật này.
Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.
Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy, Adavigo, bTaskee…
Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: