Mẹo Chuyển đổi chuỗi thành phản ứng html
Kinh Nghiệm về Chuyển đổi chuỗi thành phản ứng html 2022
Bùi Phương Thảo đang tìm kiếm từ khóa Chuyển đổi chuỗi thành phản ứng html được Update vào lúc : 2022-12-25 10:08:03 . Với phương châm chia sẻ Bí quyết về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi tham khảo nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.Cross-Site Scripting (XSS) là một cách gọi sai. Tên bắt nguồn từ những phiên bản đầu tiên của cuộc tấn công trong đó đánh cắp tài liệu Một trong những trang web là trọng tâm chính. Kể từ đó, nó đã được mở rộng để gồm có việc đưa vào cơ bản bất kỳ nội dung nào, nhưng chúng tôi vẫn gọi đây là XSS. XSS nghiêm trọng và hoàn toàn có thể dẫn đến mạo danh tài khoản, quan sát hành vi của người tiêu dùng, tải nội dung bên phía ngoài, đánh cắp tài liệu nhạy cảm, v.v.
Nội dung chính Show- Bảo mật khung¶Triết lý bảo vệ XSS¶Mã hóa đầu ra¶Mã hóa đầu ra cho “Ngữ cảnh HTML”¶Mã hóa đầu ra cho “Ngữ cảnh thuộc tính HTML”¶Mã hóa đầu ra cho “Ngữ cảnh JavaScript”¶Mã hóa đầu ra cho “Bối cảnh CSS”¶Mã hóa đầu ra cho “Ngữ cảnh URL”¶Bối cảnh nguy hiểm¶Vệ sinh HTML¶Bồn rửa bảo vệ an toàn và đáng tin cậy¶Điều khiển khác¶Tóm tắt quy tắc ngăn ngừa XSS¶Tóm tắt quy tắc mã hóa đầu ra¶Những đọc thêm¶
Chesheet này là một list những kỹ thuật để ngăn ngừa hoặc hạn chế tác động của XSS. Không có kỹ thuật đơn lẻ nào xử lý và xử lý được XSS. Sử dụng phối hợp đúng những kỹ thuật phòng thủ là thiết yếu để ngăn ngừa XSS
Bảo mật khung¶
Ít lỗi XSS hơn xuất hiện trong những ứng dụng được xây dựng bằng khung web tân tiến. Các khung này hướng những nhà phát triển hướng tới những phương pháp bảo mật thông tin tốt và giúp giảm thiểu XSS bằng phương pháp sử dụng tạo khuôn mẫu, thoát tự động, v.v. Điều đó nói rằng, những nhà phát triển cần nhận thức được những vấn đề hoàn toàn có thể xảy ra khi sử dụng những khung không bảo vệ an toàn và đáng tin cậy, ví dụ như
- những lối thoát mà những khung sử dụng để thao tác trực tiếp với DOMPhản ứng của
Hiểu cách khung của bạn ngăn ngừa XSS và nơi nó có lỗ hổng. Sẽ có những lúc bạn cần làm điều gì đó bên phía ngoài sự bảo vệ được đáp ứng bởi khuôn khổ của bạn. Đây là nơi Mã hóa đầu ra và Vệ sinh HTML rất quan trọng. OWASP đang sản xuất những cheatsheet khung rõ ràng cho React, Vue và Angular
Triết lý bảo vệ XSS¶
Để tấn công XSS thành công, kẻ tấn công cần chèn và thực thi nội dung độc hại trong trang web. Mỗi biến trong một ứng dụng web cần phải bảo vệ. Đảm nói rằng tất cả những biến đều trải qua quá trình xác thực và sau đó được thoát hoặc khử trùng được gọi là kĩ năng chống tiêm hoàn hảo nhất. Bất kỳ biến nào không trải qua quá trình này đều là một điểm yếu tiềm ẩn. Các khung giúp thuận tiện và đơn giản đảm bảo những biến được xác thực đúng chuẩn và thoát hoặc làm sạch
Tuy nhiên, những framework không hoàn hảo nhất và lỗ hổng bảo mật thông tin vẫn tồn tại trong những framework phổ biến như React và Angular. Mã hóa đầu ra và Vệ sinh HTML giúp xử lý và xử lý những lỗ hổng đó
Mã hóa đầu ra¶
Mã hóa đầu ra được khuyến nghị khi bạn cần hiển thị tài liệu một cách bảo vệ an toàn và đáng tin cậy đúng chuẩn như người tiêu dùng đã nhập tài liệu đó vào. Các biến tránh việc được hiểu là mã thay vì văn bản. Phần này gồm có từng dạng mã hóa đầu ra, nơi sử dụng nó và nơi tránh sử dụng dịch chuyển hoàn toàn
Bắt đầu với việc sử dụng bảo vệ mã hóa đầu ra mặc định của khung khi bạn muốn hiển thị tài liệu khi người tiêu dùng nhập tài liệu vào. Các hiệu suất cao mã hóa và thoát tự động được tích hợp trong hầu hết những khung
Nếu bạn không sử dụng khung hoặc cần che những khoảng chừng trống trong khung thì bạn nên sử dụng thư viện mã hóa đầu ra. Mỗi biến được sử dụng trong giao diện người tiêu dùng phải được chuyển qua hiệu suất cao mã hóa đầu ra. Một list những thư viện mã hóa đầu ra được gồm có trong phần phụ lục
Có nhiều phương pháp mã hóa đầu ra rất khác nhau vì những trình duyệt phân tích cú pháp HTML, JS, URL và CSS rất khác nhau. Sử dụng phương pháp mã hóa sai hoàn toàn có thể gây ra điểm yếu hoặc gây hại cho hiệu suất cao của ứng dụng của bạn
Mã hóa đầu ra cho “Ngữ cảnh HTML”¶
“Ngữ cảnh HTML” đề cập đến việc chèn một biến giữa hai thẻ HTML cơ bản như
Kẻ tấn công hoàn toàn có thể sửa đổi tài liệu được hiển thị dưới dạng
Để thêm biến vào ngữ cảnh HTML một cách bảo vệ an toàn và đáng tin cậy, hãy sử dụng mã hóa thực thể HTML cho biến đó khi bạn thêm biến đó vào mẫu web
Dưới đây là một số trong những ví dụ về những giá trị được mã hóa cho những ký tự rõ ràng
Nếu bạn đang sử dụng JavaScript để ghi vào HTML, hãy xem thuộc tính
Mã hóa đầu ra cho “Ngữ cảnh thuộc tính HTML”¶
“Ngữ cảnh thuộc tính HTML” đề cập đến việc đặt một biến trong một giá trị thuộc tính HTML. Bạn hoàn toàn có thể muốn thực hiện việc này để thay đổi siêu link, ẩn phần tử, thêm văn bản thay thế cho hình ảnh hoặc thay đổi kiểu CSS nội tuyến. Bạn nên áp dụng mã hóa thuộc tính HTML cho những biến được đặt trong hầu hết những thuộc tính HTML. Danh sách những thuộc tính HTML bảo vệ an toàn và đáng tin cậy được đáp ứng trong phần Safe Sinks
Điều quan trọng là sử dụng những dấu ngoặc kép như
Nếu bạn đang sử dụng JavaScript để ghi vào Thuộc tính HTML, hãy xem những phương thức
Mã hóa đầu ra cho “Ngữ cảnh JavaScript”¶
“Bối cảnh JavaScript” đề cập đến việc đặt những biến vào JavaScript nội tuyến, sau đó được nhúng vào tài liệu HTML. Điều này thường thấy trong những chương trình sử dụng nhiều JavaScript tùy chỉnh được nhúng trong trang web của tớ
Vị trí 'bảo vệ an toàn và đáng tin cậy' duy nhất để đặt biến trong JavaScript là bên trong "giá trị tài liệu được trích dẫn". Tất cả những ngữ cảnh khác đều không bảo vệ an toàn và đáng tin cậy và bạn tránh việc đặt tài liệu biến hóa trong đó
Ví dụ về “Giá trị tài liệu được trích dẫn”
Mã hóa tất cả những ký tự bằng định dạng
Vui lòng xem những ví dụ mã hóa JavaScript của OWASP Java Encoder để biết những ví dụ về cách sử dụng JavaScript thích hợp yêu cầu mã hóa tối thiểu
Đối với JSON, hãy xác minh rằng tiêu đề
Mã hóa đầu ra cho “Bối cảnh CSS”¶
“Bối cảnh CSS” đề cập đến những biến được đặt vào CSS nội tuyến. Điều này phổ biến khi bạn muốn người tiêu dùng hoàn toàn có thể tùy chỉnh giao diện trang web của tớ. CSS mạnh một cách đáng ngạc nhiên và đã được sử dụng cho nhiều kiểu tấn công. Các biến nên làm được đặt trong một giá trị thuộc tính CSS. Các “Bối cảnh CSS” khác không bảo vệ an toàn và đáng tin cậy và bạn tránh việc đặt tài liệu biến hóa vào đó
Nếu bạn đang sử dụng JavaScript để thay đổi thuộc tính CSS, hãy xem xét sử dụng
// Thêm lời khuyên mã hóa CSS
Mã hóa đầu ra cho “Ngữ cảnh URL”¶
“Ngữ cảnh URL” đề cập đến những biến được đặt vào một URL. Thông thường nhất, nhà phát triển sẽ thêm một tham số hoặc đoạn URL vào cơ sở URL sau đó được hiển thị hoặc sử dụng trong một số trong những thao tác. Sử dụng Mã hóa URL cho những tình huống này
Mã hóa tất cả những ký tự bằng định dạng mã hóa
Sẽ có những trường hợp bạn sử dụng một URL trong những ngữ cảnh rất khác nhau. Cách phổ biến nhất là thêm nó vào thuộc tính
Nếu bạn đang sử dụng JavaScript để tạo Giá trị truy vấn URL, hãy xem xét sử dụng
Bối cảnh nguy hiểm¶
Mã hóa đầu ra không hoàn hảo nhất. Không phải lúc nào nó cũng ngăn được XSS. Những địa điểm này được gọi là toàn cảnh nguy hiểm. toàn cảnh nguy hiểm gồm có
Các nghành khác cần thận trọng gồm có
- hiệu suất cao gọi lạiTrường hợp URL được xử lý trong mã, ví dụ như CSS này { background-url. “javascript. chú ý (xss)”; Tất cả những trình xử lý sự kiện JavaScript (
Không đặt những biến vào những ngữ cảnh nguy hiểm vì trong cả với mã hóa đầu ra, nó sẽ không ngăn ngừa hoàn toàn một cuộc tấn công XSS
Vệ sinh HTML¶
Đôi khi người tiêu dùng cần tác giả HTML. Một ngữ cảnh sẽ được cho phép người tiêu dùng thay đổi mẫu mã hoặc cấu trúc nội dung bên trong trình sửa đổi WYSIWYG. Mã hóa đầu ra ở đây sẽ ngăn XSS, nhưng nó sẽ phá vỡ hiệu suất cao dự tính của ứng dụng. Kiểu dáng sẽ không được hiển thị. Trong những trường hợp này, nên sử dụng HTML Sanitization
HTML Sanitization sẽ vô hiệu HTML nguy hiểm khỏi một biến và trả về một chuỗi HTML bảo vệ an toàn và đáng tin cậy. OWASP đề xuất DOMPurify để làm sạch HTML
Có một số trong những điều nữa để xem xét
- Nếu bạn làm sạch nội dung và sau đó sửa đổi nội dung đó, bạn hoàn toàn có thể thuận tiện và đơn giản vô hiệu hóa những nỗ lực bảo mật thông tin của mìnhNếu bạn làm sạch nội dung và sau đó gửi nó đến thư viện để sử dụng, hãy kiểm tra để đảm nói rằng nó không làm thay đổi chuỗi đó bằng phương pháp nào đó. Mặt khác, một lần nữa, nỗ lực bảo mật thông tin của bạn vô hiệuBạn phải thường xuyên vá lỗi DOMPurify hoặc những thư viện HTML Sanitization khác mà bạn sử dụng. Trình duyệt thay đổi hiệu suất cao và bỏ qua được phát hiện thường xuyên
Bồn rửa bảo vệ an toàn và đáng tin cậy¶
Các Chuyên Viên bảo mật thông tin thường nói về nguồn và phần chìm. Nếu bạn làm ô nhiễm một dòng sông, nó sẽ chảy xuôi dòng ở đâu đó. Bảo mật máy tính cũng vậy. Phần chìm XSS là nơi những biến được đặt vào trang web của bạn
Rất may, nhiều bồn rửa nơi hoàn toàn có thể đặt những biến được bảo vệ an toàn và đáng tin cậy. Điều này là vì những phần chìm này coi biến là văn bản và sẽ không bao giờ thực thi nó. Cố gắng cấu trúc lại mã của bạn để xóa những tham chiếu đến phần chìm không bảo vệ an toàn và đáng tin cậy như InternalHTML và thay vào đó hãy sử dụng textContent hoặc giá trị
Thuộc tính HTML bảo vệ an toàn và đáng tin cậy gồm có. _______193, _______194, _______195, _______196, _______197, _______198, _______199, _______104, _______251, _______252, _______253, _______254, _______255, _______256, _______257, _______258, _______259, _______270, _______271, _______272, _______273, _______274, _______275, _______276, _______277,
Để có list toàn diện, hãy xem list được cho phép của DOMPurify
Điều khiển khác¶
Bảo vệ bảo mật thông tin khung, Mã hóa đầu ra và Vệ sinh HTML sẽ đáp ứng sự bảo vệ tốt nhất cho ứng dụng của bạn. OWASP đề xuất những điều này trong mọi trường hợp
Cân nhắc áp dụng những giải pháp trấn áp sau ngoài những giải pháp trấn áp trên
- Thuộc tính cookie - Những thuộc tính này thay đổi cách JavaScript và trình duyệt hoàn toàn có thể tương tác với cookie. Các thuộc tính cookie nỗ lực hạn chế tác động của một cuộc tấn công XSS nhưng không ngăn ngừa việc thực thi nội dung độc hại hoặc xử lý và xử lý nguyên nhân gốc rễ của lỗ hổngChính sách bảo mật thông tin nội dung - Danh sách được cho phép ngăn tải nội dung. Rất dễ mắc lỗi khi triển khai, vì vậy đây không phải là cơ chế bảo vệ chính của bạn. Sử dụng CSP như một lớp phòng thủ tương hỗ update và xem qua trang phục ở đâyTường lửa ứng dụng web - Chúng tìm kiếm những chuỗi tấn công đã biết và chặn chúng. WAF không đáng tin cậy và những kỹ thuật bỏ qua mới được phát hiện thường xuyên. WAF cũng không xử lý và xử lý được nguyên nhân gốc rễ của lỗ hổng XSS. Ngoài ra, WAF cũng bỏ lỡ một loại lỗ hổng XSS hoạt động và sinh hoạt giải trí độc quyền phía máy khách. WAF không được khuyến nghị để ngăn ngừa XSS, đặc biệt là XSS nhờ vào DOM
Tóm tắt quy tắc ngăn ngừa XSS¶
Các đoạn mã HTML sau minh họa cách hiển thị tài liệu không đáng tin cậy một cách bảo vệ an toàn và đáng tin cậy trong nhiều ngữ cảnh rất khác nhau
Kiểu dữ liệuMã bối cảnhMẫuDefenseStringHTML BodyTóm tắt quy tắc mã hóa đầu ra¶
Mục đích của mã hóa đầu ra (vì nó liên quan đến Cross Site Scripting) là quy đổi đầu vào không đáng tin cậy thành dạng bảo vệ an toàn và đáng tin cậy nơi đầu vào được hiển thị dưới dạng tài liệu cho những người dân tiêu dùng mà không cần thực thi dưới dạng mã trong trình duyệt. Các biểu đồ sau nêu rõ ràng list những phương pháp mã hóa đầu ra quan trọng thiết yếu để dừng Cross Site Scripting
Loại mã hóa Cơ chế mã hóa Mã hóa thực thể HTML Chuyển đổiNhững đọc thêm¶
Bảng cheat tấn công XSS
Bài viết sau đây mô tả cách khai thác nhiều chủng loại Lỗ hổng XSS rất khác nhau mà nội dung bài viết này được tạo ra để giúp bạn tránh
Tải thêm tài liệu liên quan đến nội dung bài viết Chuyển đổi chuỗi thành phản ứng html programming html
Post a Comment