Trong nội dung bài viết này, shop chúng tôi sẽ phân tích và lý giải kịch bạn dạng chéo trang (cross-site scripting) là gì, mô tả các loại lỗ hổng kịch phiên bản chéo trang không giống nhau tương tự như cách search và ngăn ngừa kịch bạn dạng chéo trang.

Bạn đang xem: Cross site scripting là gì


Kịch bạn dạng chéo trang (XSS) là gì?

Kịch bản chéo trang (Cross-site scripting – XSS) là một lỗ hổng bảo mật web cho phép kẻ tiến công giả trang thành tín đồ dùng, thực hiện ngẫu nhiên hành động nào mà người dùng có thể thực hiện nay và truy cập vào bất kỳ dữ liệu làm sao của bạn dùng. Nếu người dùng nạn nhân tất cả quyền truy nã cập độc quyền trong ứng dụng, thì kẻ tấn công rất có thể có toàn quyền kiểm soát tất cả các tính năng và tài liệu của ứng dụng.

XSS vận động như vậy nào?

Kịch bạn dạng chéo trang hoạt động bằng cách đưa vào trong 1 trang web dễ bị tổn thương những lệnh JavaScript độc hại cho người dùng. Lúc mã độc thực thi phía bên trong trình để mắt tới của nạn nhân, kẻ tấn công hoàn toàn có thể tấn công ứng dụng.

Các loại tiến công XSS là gì?

Có bố loại tấn công XSS chính. Đó là:

Reflected XSS, trong số ấy tập lệnh ô nhiễm xuất phạt từ yêu ước HTTP hiện tại.Stored XSS, tập lệnh độc hại xuất phạt từ cơ sở dữ liệu của trang web.DOM-based XSS, trong số ấy lỗ hổng trường tồn trong mã phía trang bị khách thay do mã phía trang bị chủ.

Reflected cross-site scripting

Reflected XSS là tấn công đơn giản nhất của kịch bản chéo trang (cross-site scripting). Nó vạc sinh khi một ứng dụng nhận tài liệu trong yêu cầu HTTP và tài liệu đó trong phản hồi ngay lập tức theo phong cách không an toàn.

Dưới đấy là một ví dụ đơn giản và dễ dàng về lỗ hổng reflected XSS:

https://insecure-website.com/status?message=All+is+well.Status: All is well.

Ứng dụng ko thực hiện ngẫu nhiên xử lý tài liệu nào khác, vị vậy kẻ tấn công rất có thể dễ dàng tạo nên một cuộc tấn công như thế này:

https://insecure-website.com/status?message=Status:

Nếu người tiêu dùng truy cập URL được tạo vày kẻ tấn công, thì tập lệnh của kẻ tiến công sẽ thực hiện trong trình xem xét của fan dùng, trong bối cảnh phiên của người dùng đó với ứng dụng. Tại thời khắc đó, tập lệnh rất có thể thực hiện ngẫu nhiên hành cồn nào và truy xuất ngẫu nhiên dữ liệu như thế nào mà người tiêu dùng có quyền truy nã cập.

Stored cross-site scripting

Stored XSS (còn được gọi là persistent XSS hoặc second-order XSS) phân phát sinh lúc một ứng dụng nhấn dữ liệu xuất phát từ một nguồn không tin cậy và tài liệu đó bao hàm các phản hồi HTTP sau đó theo cách không an toàn.

Dữ liệu trong thắc mắc có thể được gửi đến ứng dụng trải qua các yêu ước HTTP; ví dụ: thừa nhận xét về bài xích đăng bên trên blog, biệt danh người dùng trong phòng chat chit hoặc chi tiết liên hệ về đơn mua hàng của khách hàng hàng. Trong các trường hòa hợp khác, dữ liệu hoàn toàn có thể đến từ những nguồn không an toàn và tin cậy khác; ví dụ: ứng dụng webmail hiển thị các tin nhắn cảm nhận qua SMTP, vận dụng tiếp thị hiển thị những bài đăng bên trên phương tiện truyền thông media xã hội hoặc ứng dụng giám sát và đo lường mạng hiển thị dữ liệu gói từ lưu giữ lượng mạng.

Dưới đó là một ví dụ đơn giản và dễ dàng về lỗ hổng XSS được lưu giữ trữ. Ứng dụng bảng tin được cho phép người dùng gửi tin nhắn nhắn, được hiển thị cho những người dùng khác:

Hello, this is my message!

Ứng dụng ko thực hiện ngẫu nhiên xử lý tài liệu nào khác, vì vậy kẻ tấn công hoàn toàn có thể dễ dàng gửi tin nhắn tấn công người dùng khác:

Kịch bạn dạng chéo trang dựa vào DOM

XSS dựa trên DOM (còn được điện thoại tư vấn là DOM XSS ) vạc sinh khi 1 ứng dụng chứa một số JavaScript phía đồ vật khách xử lý dữ liệu xuất phát điểm từ một nguồn không tin tưởng cậy theo phong cách không an toàn, thường là bằng cách ghi dữ liệu quay lại DOM.

Trong lấy một ví dụ sau, một áp dụng sử dụng một vài JavaScript nhằm đọc quý hiếm từ trường nguồn vào và ghi cực hiếm đó vào 1 phần tử vào HTML:

var search = document.getElementById("search").value;var results = document.getElementById("results");results.innerHTML = "You searched for: " + search;Nếu kẻ tấn công rất có thể kiểm soát quý giá của ngôi trường đầu vào, chúng rất có thể dễ dàng thiết kế một giá chỉ trị độc hại khiến tập lệnh của chủ yếu chúng thực thi:

You searched for: Trong trường đúng theo điển hình, ngôi trường đầu vào sẽ được điền từ 1 phần của yêu ước HTTP, chẳng hạn như tham số chuỗi truy tìm vấn URL, có thể chấp nhận được kẻ tiến công thực hiện tại một cuộc tấn vô tư URL độc hại, giống như reflected XSS.

XSS rất có thể được sử dụng để triển khai gì?

Kẻ tấn công khai minh bạch thác lỗ hổng kịch bản chéo trang (cross-site scripting) thường sẽ có thể:

Mạo danh hoặc trá hình là người tiêu dùng nạn nhân.Thực hiện bất kỳ hành động mà bạn dùng có thể thực hiện.Đọc bất kỳ dữ liệu mà fan dùng rất có thể truy cập.Nắm bắt tin tức đăng nhập của người dùng.Thực hiện lệch lạc ảo của trang web.Tiêm trojan vào trang web.

Tác đụng của lỗ hổng XSS

Tác cồn thực sự của một cuộc tấn công XSS thường phụ thuộc vào thực chất của ứng dụng, tác dụng và dữ liệu của nó và trạng thái của người tiêu dùng bị xâm nhập. Ví dụ:

Trong một ứng dụng brochurware, khu vực tất từ đầu đến chân dùng là ẩn danh và tất cả thông tin là công khai, tác động ảnh hưởng thường sẽ rất nhỏ.Trong một áp dụng chứa tài liệu nhạy cảm, ví dụ điển hình như thanh toán ngân hàng, thư điện tử hoặc hồ sơ âu yếm sức khỏe, tác động ảnh hưởng thường sẽ nghiêm trọng.Nếu người dùng bị xâm nhập có các đặc quyền nâng cao trong ứng dụng, thì ảnh hưởng tác động nói chung sẽ khá nghiêm trọng, chất nhận được kẻ tấn công kiểm soát và điều hành hoàn toàn áp dụng dễ bị tổn thương với thỏa hiệp tất khắp cơ thể dùng và dữ liệu của họ.

Cách tìm và bình chọn lỗ hổng XSS

Phần lớn các lỗ hổng XSS có thể được tra cứu thấy nhanh chóng và an toàn bằng cách thực hiện trình quét lỗ hổng web có sẵn trên internet.

Kiểm tra bằng tay thủ công cho reflected và stored XSS thường bao hàm gửi một số trong những đầu vào duy nhất đơn giản và dễ dàng (chẳng hạn như một chuỗi cam kết tự chữ với số ngắn) vào đông đảo điểm nhập vào ứng dụng; khẳng định mọi địa điểm nơi nguồn vào đã gởi được trả về trong phản hồi HTTP; và kiểm soát từng vị trí riêng biệt để xác định xem liệu đầu vào được chế tạo tương xứng có thể được sử dụng để triển khai JavaScript tùy ý tốt không.

Kiểm tra bằng tay XSS DOM tạo ra từ những tham số URL gồm một quy trình tương tự: đặt một vài đầu vào duy nhất đơn giản vào tham số, sử dụng các công cụ giành cho nhà trở nên tân tiến của trình phê chuẩn để tra cứu kiếm DOM cho nguồn vào này và kiểm tra từng địa điểm để xác định xem có thể khai thác được không. 

Cách chống chặn những cuộc tấn công XSS

Ngăn ngăn kịch bạn dạng chéo trang là chuyện bé dại trong một trong những trường vừa lòng nhưng hoàn toàn có thể khó hơn các tùy thuộc vào độ tinh vi của áp dụng và biện pháp nó xử lý dữ liệu do người dùng kiểm soát.

Nói chung, bài toán ngăn chặn hiệu quả các lỗ hổng XSS hoàn toàn có thể liên quan mang đến sự kết hợp của những biện pháp sau:

Lọc đầu vào khi đến. Tại thời khắc nhận được đầu vào của người dùng, hãy lọc càng các càng tốt dựa trên hầu hết gì được muốn đợi hoặc nguồn vào hợp lệ.Mã hóa dữ liệu trên đầu ra. Tại thời điểm mà dữ liệu do người dùng kiểm soát và điều hành là đầu ra trong những phản hồi HTTP, hãy mã hóa cổng đầu ra để ngăn quán triệt nó bị gọi là nội dung hoạt động. Tùy thuộc vào toàn cảnh đầu ra, điều này có thể yêu ước áp dụng phối kết hợp mã hóa HTML, URL, JavaScript cùng CSS.Sử dụng các tiêu đề bội nghịch ứng yêu thích hợp. Để ngăn ngừa XSS trong phản bội ứng HTTP mà lại không nhằm mục tiêu mục đích chứa ngẫu nhiên HTML hoặc JavaScript, chúng ta cũng có thể sử dụng Content-Type và X-Content-Type-Tùy chọn tiêu đề để đảm bảo an toàn rằng những trình duyệt lý giải các câu vấn đáp theo cách bạn dự định.Chính sách bảo mật thông tin nội dung. Là tuyến bảo vệ cuối cùng, chúng ta có thể sử dụng chế độ bảo mật câu chữ (CSP) để sút mức độ rất lớn của bất kỳ lỗ hổng XSS như thế nào vẫn xảy ra.

Các câu hỏi thường chạm mặt về kịch bản chéo trang

Các lỗ hổng XSS phổ biến như vậy nào? Các lỗ hổng XSS rất thịnh hành và XSS có lẽ là lỗ hổng bảo mật thông tin web xảy ra tiếp tục nhất.

Các cuộc tiến công XSS phổ biến như vậy nào? Rất khó để có được dữ liệu tin cậy về những cuộc tấn công XSS trong thế giới thực, nhưng chắc hẳn rằng nó ít được khai quật hơn những lỗ hổng khác.

Sự khác biệt giữa XSS và CSRF là gì? XSS liên quan đến việc khiến cho một website trả lại JavaScript độc hại, trong những lúc CSRF liên quan đến việc khiến người dùng nạn nhân triển khai các hành động mà họ không có ý định thực hiện.

Sự khác hoàn toàn giữa XSS và injection SQL là gì? XSS là một trong những lỗ hổng phía sản phẩm khách nhắm vào người tiêu dùng ứng dụng khác, trong lúc SQL SQL là lỗ hổng phía sever nhắm vào cơ sở dữ liệu của ứng dụng.

Xem thêm: Sách Bộ Đề Thi Tuyển Sinh Vào Lớp 10 Môn Toán Năm 2022 Có Đáp Án

Làm bí quyết nào để phòng XSS trong PHP? Lọc các đầu vào của chúng ta với list trắng những ký tự được phép cùng sử dụng gợi nhắc loại hoặc truyền kiểu. Thoát các kết quả đầu ra của công ty với htmlentity và ENT_QUOTES cho những bối cảnh HTML hoặc JavaScript Unicode thoát cho các bối cảnh JavaScript.

Làm phương pháp nào để phòng XSS vào Java? Lọc những đầu vào của doanh nghiệp với danh sách trắng những ký tự được phép và sử dụng thư viện như Google Guava để mã hóa HTML đầu ra của người tiêu dùng cho các bối cảnh HTML hoặc thực hiện mã JavaScript Unicode cho bối cảnh JavaScr