Cross Site Scripting là gì? Gợi ý cách ngăn chặn XSS hiệu quả

Cuộc tấn công Cross Site Scripting hay XSS gây ảnh hưởng lớn cho hệ thống mạng của người dùng. Bài viết này, LANIT sẽ chia sẻ chi tiết về tấn công XSS cũng như các phát hiện, phòng chống hiệu quả nhất. Theo dõi ngay nhé!

XSS là gì?

XSS (Cross Site Scripting) là dạng tấn công Injection khi kẻ tấn công chèn một Script gây hại vào trong Website. Dạng tấn công này làm tổn hại website bằng cách kiểm soát tương tác của người dùng tới Website thông qua mật khẩu đăng nhập, thông tin cá nhân, tìm kiếm dữ liệu của người dùng mong muốn,…

Tấn công XSS này cho phép Hacker giả dạng thành nạn nhân để thực hiện mọi hành động mà họ có thể thực hiện được. Giúp kẻ tấn công nắm được hết dữ liệu người dùng nên nếu bạn có đặc quyền truy cập vào một ứng dụng nào đó, thì họ cũng có thể làm được điều tương tự. 

Cách thức hoạt động của XSS

Cross-site Scripting hoạt động bằng cách làm nhiễu các trang dễ tấn công để có thể chèn các mã độc vào đấy. Khi mã độc được phát tán vào trình duyệt người dùng, Hacker sẽ có quyền kiểm soát mọi hoạt động của họ.

XSS có thể hoạt động mạnh mẽ trên các nền tảng VBScript, Flash, ActiveX,…. Vì thế hầu hết các trang Web đều có khả năng bị dính mã độc từ Cross Site Scripting.

Cross-site Scripting sẽ làm nhiễu trang Web để chèn mã độc và đánh cắp thông tin của nạn nhân
Cross-site Scripting sẽ làm nhiễu trang Web để chèn mã độc và đánh cắp thông tin của nạn nhân

Quan tâm thêm: Hướng dẫn cách Chống DDoS Cho VPS hiệu quả

Các loại tấn công XSS phổ biến

Cross Site Scripting được chia ra làm 3 loại phổ biến là: Stored XSS, Reflected XSS và DOM-based XSS. Mỗi loại XSS sẽ có những mối nguy hại nhất định như sau:

Stored XSS (Persistent XSS)

Stored XSS (hay Persistent XSS hoặc Second-order XSS) hoạt động khi ứng dụng nhận dữ liệu từ một nguồn không đáng tin cậy và có phản hồi HTTP không an toàn. Theo đó, các mã độc sẽ xâm nhập vĩnh viễn vào cơ sở dữ liệu, tin nhắn, bình luận và cả hệ thống máy chủ. Khi nạn nhân truy xuất các mã độc đó từ máy chủ, Hacker sẽ có quyền kiểm soát mọi hoạt động của họ. 

Cross Site Scripting La Gi 2
Stored XSS sẽ xâm nhập vĩnh viễn vào hệ thống máy chủ khi nạn nhân truy xuất mã độc về trình duyệt của mình

Reflected XSS 

Reflected XSS (hay Non-persistent XSS) là loại XSS tấn công mạng thông qua việc chèn Script độc vào các phản hồi mà trình duyệt web gửi cho máy chủ. Chẳng hạn như tin nhắn lỗi hay kết quả tìm kiếm trên trang web của người dùng,… 

Khi ứng dụng Web bị dính Script độc, nó sẽ gửi mã độc của Hacker tới trình duyệt của nạn nhân để xử lý như là một mã Code bình thường. Sau đó, Hacker sẽ có quyền kiểm soát tất cả các thông tin của người dùng. 

DOM-based XSS

DOM-based XSS sẽ phát tán khi ứng dụng chứa Javascript xử lý dữ liệu từ nguồn không đáng tin cậy. Theo đó Hacker sẽ kiểm soát Data từ trường Input và xây dựng nên các mã độc gây hại. 

DOM-based XSS sẽ cài mã độc vào DOM để phát tán ra ngoài
DOM-based XSS sẽ cài mã độc vào DOM để phát tán ra ngoài

Self-XSS Attacks

Self-XSS Attacks thiên về tấn công phi kỹ thuật, đánh lừa người dùng để họ tự Script lấy mã độc. Hiện nay cách tấn công này đã không còn thông dụng do các trình duyệt đã áp dụng biện pháp nâng cao hơn để cảnh báo người dùng. Nếu ai đó cố gắng dán một đoạn Javascript vào thanh địa chỉ của Chrome hoặc Firefox, trình duyệt sẽ cảnh báo về những nguy hiểm có thể xảy đến ngay tức thì.

Cách kiểm tra Website có bị dính tấn công XSS hay không?

Bất kỳ trang Web hay ứng dụng nào cũng đều có thể bị tấn công Cross Site Scripting. Vì vậy, mọi người nên kiểm tra Website thường xuyên để tránh XSS tấn công vào hệ thống. 

Với Stored Reflected XSS, bạn có thể kiểm tra bằng cách đưa vào đây một số Input đơn giản và độc nhất. Sau đó, nhận diện từng nơi mà Input phản hồi rồi chờ HTTP trả kết quả cho các Input đó. Tiếp đó, tiến hành kiểm tra xem nơi nào đang có các hành động bất thường của Javascript để xác định được vị trí mà XSS đang ẩn mình.

Với DOM-based XSS, người dùng cần kiểm tra Cross Site Scripting thông qua các thông số URL có liên quan theo cách sau đây:

  • Chèn Input đơn giản và độc nhất vào thông số đó.
  • Sử dụng công cụ nhà phát triển trình duyệt để tìm DOM cho Input đầu vào. 
  • Kiểm tra từng vị trí để xem đâu là nơi bị tấn công mà ngăn chặn kịp thời đúng lúc.

Kinh nghiệm đối phó với tấn công XSS hiệu quả

Sau đây là các cách đối phó XSS hiệu quả giúp bạn giảm thiểu được hậu quả mà tấn công này gây ra:

  • Duy trì sự cảnh giác cao độ
  • Không tin tưởng bất cứ Input nào của người dùng 
  • Sử dụng Escaping/Encoding để phòng tránh tấn công XSS
  • Thanh lọc HTML: Bằng cách sử dụng các thư viện tin cậy và xác thực, cần tiến hành mổ xẻ và thanh lọc HTML khỏi các mã độc được cài vào. 
  • Cài đặt và sử dụng HttpOnly Flag cho Cookies của Website
  • Sử dụng CSP – Là Header của các phản hồi HTTP, giúp phát hiện các nguồn cấp phát tài nguyên động.
  • Quét Website thường xuyên

Kết luận

Trên đây, LANIT đã chia sẻ chi tiết về tấn công Cross Site Scripting là gì, các loại tấn công XSS phổ biến cũng như các cách ngăn chặn hiệu quả nhất. Có thể nói đây dạng tấn công mạng vô cùng nguy hiểm khi nó có thể đánh cắp thông tin cá nhân và gây tổn hại lớn cho Website người dùng. Vì vậy, các bạn đừng nên chủ quan mà hãy áp dụng các biện pháp phòng ngừa XSS ngay từ bây giờ. Chúc bạn thành công!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!