Công cụ dành cho nhà phát triển · HTML bộ thoát thực thể
Thoát, loại bỏ hoặc khử trùng HTML: ba kỹ thuật và thời điểm sử dụng từng kỹ thuật
· Cách thức hoạt động
html bảo vệ text-processing
Thoát hiển thị đánh dấu dưới dạng văn bản, loại bỏ nó sẽ loại bỏ nó và khử trùng sẽ giữ một tập hợp con an toàn. Bài đăng này giải thích mỗi kỹ thuật thực sự làm gì, mỗi kỹ thuật đều thất bại ở đâu và cách chọn kỹ thuật phù hợp cho đầu vào của bạn.
Bình luận lẽ ra phải hiển thị mã nhưng thay vào đó lại chạy nó — một lựa chọn sai trong số ba kỹ thuật
Bình luận lẽ ra phải hiển thị mã nhưng thay vào đó lại chạy nó — một lựa chọn sai lầm trong ba kỹ thuật. Nhận xét nhằm hiển thị đánh dấu có thể thực thi khi ứng dụng hiển thị nhận xét đó dưới dạng HTML. Quyết định đầu tiên là liệu sản phẩm muốn văn bản thuần túy, không có đánh dấu hay một tập hợp con phong phú được giới hạn có chủ ý.
Để xác minh tính năng thoát so với dọn dẹp html, hãy tạo nhận xét dành cho nhà phát triển xây dựng hệ thống nhận xét. Bảo tồn phải hiển thị mã trong khi lựa chọn ba thao tác tạo ra và thay vào đó chạy nó; xác định nơi lựa chọn sai trong số đó được tiêu thụ. Quan sát về ba kỹ thuật chỉ thuộc về văn bản HTML.
Thoát: đánh dấu trở thành văn bản hiển thị - những gì thay đổi, những gì được giữ nguyên và tại sao nó là mặc định
Thoát: đánh dấu trở thành văn bản hiển thị - những gì thay đổi, những gì được giữ nguyên và tại sao nó là mặc định. Việc thoát sẽ bảo toàn mọi ký tự trong khi thay đổi những ký tự quan trọng trong đánh dấu thành tham chiếu. Trình duyệt hiển thị các ký hiệu gốc dưới dạng văn bản, biến ký hiệu này thành mặc định chính xác cho các nhận xét và ví dụ về mã.
Nhà phát triển đang xây dựng hệ thống nhận xét có thể kiểm tra khả năng hiển thị của đánh dấu thoát bằng cách ghi lại văn bản những gì thay đổi trước khi vượt qua lựa chọn ba thao tác. So sánh được giữ nguyên và lý do sau đó và xác định trình phân tích cú pháp chịu trách nhiệm về nó là mặc định. Kết quả html thoát và khử trùng này giải thích bằng chứng lựa chọn ba thao tác, không phải bối cảnh thực thi.
Tước: xóa thẻ - tại sao việc tước thẻ bằng biểu thức chính quy lại không đáng tin cậy và nó mất đi những gì
Tước: xóa thẻ - tại sao việc tước thẻ bằng biểu thức chính quy là không đáng tin cậy và nó mất đi những gì. Việc tước bỏ sẽ loại bỏ các thẻ rõ ràng và làm mất cấu trúc, dấu câu hoặc từ. Biểu thức thông thường không thể mô hình hóa quá trình khôi phục lỗi trình duyệt, các thành phần văn bản thô hoặc lồng ghép không đúng định dạng đủ đáng tin cậy để xác định mức độ an toàn.
Tách biệt việc xóa thẻ xóa lý do tại sao trong mẫu lựa chọn ba thao tác ngắn. Hiển thị việc loại bỏ thẻ biểu thức chính quy dưới dạng nguồn theo nghĩa đen, theo dõi không đáng tin cậy và những gì nó đến đích, đồng thời đặt tên cho số đọc API bị mất. Để thoát khỏi và làm sạch html, bằng chứng lựa chọn ba thao tác vẫn là bằng chứng bị ràng buộc bởi trình phân tích cú pháp.
Làm sạch: cho phép một tập hợp con - danh sách cho phép, quy tắc thuộc tính và lý do tại sao nó khó nhất trong ba
Vệ sinh: cho phép một tập hợp con - danh sách cho phép, quy tắc thuộc tính và lý do tại sao nó khó nhất trong ba. Dọn dẹp các phân tích cú pháp hoặc mã hóa đánh dấu và giữ một danh sách cho phép rõ ràng về các phần tử, thuộc tính và lược đồ URL. Về cơ bản, việc này khó hơn vì việc giải thích trình duyệt, đầu vào không đúng định dạng và ngôn ngữ lồng nhau đều quan trọng.
Hãy coi việc khử trùng cho phép một tập hợp con làm thử nghiệm ranh giới. Nhà phát triển đang xây dựng hệ thống nhận xét phải giữ lại các quy tắc thuộc tính danh sách cho phép, thực hiện một thao tác lựa chọn ba thao tác, đồng thời kiểm tra lý do tại sao nó lại có từng ký tự trước khi thay đổi phần khó nhất trong số đó. Xác nhận quyền sở hữu về ba điểm dừng ở lớp HTML này.
Ví dụ hoạt động: cùng một dữ liệu nhập của người dùng thông qua cả ba - văn bản hoặc đánh dấu kết quả được so sánh
Ví dụ đã hoạt động: cùng một dữ liệu nhập của người dùng thông qua cả ba - văn bản hoặc đánh dấu kết quả được so sánh. Với <strong onclick="go()">Hi & bye</strong>, thao tác thoát hiển thị toàn bộ nguồn, loại bỏ mục tiêu dành cho Chào & tạm biệt và quá trình dọn dẹp có thể giữ lại <strong> trong khi xóa onclick theo chính sách đã được chứng minh.
Tái tạo ví dụ đã làm việc tương tự với đầu vào vô hại thay vì tài liệu của khách hàng. Ghi lại tất cả thông tin đầu vào của người dùng, quan sát ba văn bản kết quả và đếm từng lượt lựa chọn ba thao tác có chủ ý. Đường dẫn thoát và vệ sinh html đó cho phép nhà phát triển xây dựng hệ thống nhận xét đánh giá hoặc đánh dấu so sánh và bằng chứng lựa chọn ba thao tác mà không cần đoán.
Lựa chọn theo mục đích - văn bản thuần túy và mẫu mã thoát; vệ sinh văn bản phong phú; cởi đồ hiếm khi đúng
Lựa chọn theo mục đích - văn bản thuần túy và mẫu mã thoát; vệ sinh văn bản phong phú; cởi đồ hiếm khi đúng. Chọn từ mục đích: văn bản thuần túy và các ví dụ được thoát; văn bản đa dạng thức được hỗ trợ được làm sạch bằng chính sách chuyên dụng, được duy trì; việc loại bỏ là một chuyển đổi bị tổn thất và không phải là sự đảm bảo XSS.
Đặt các mẫu lựa chọn theo mục đích đơn giản, văn bản và mã, đồng thời loại bỏ các văn bản đa dạng thức cạnh nhau trong quá trình xem xét lựa chọn ba thao tác. Sau đó, nhà phát triển xây dựng hệ thống nhận xét có thể quyết định liệu việc tước bỏ hiếm khi được thay đổi đúng lúc chuyển đổi hay xuôi dòng. Giữ kết luận html thoát và làm sạch về bằng chứng lựa chọn ba hoạt động ngoài các tuyên bố bảo mật chung.
Điều này không bao gồm những gì - Chính sách bảo mật nội dung và kết xuất Markdown dưới dạng các lớp bổ sung
Điều này không bao gồm những gì - Chính sách bảo mật nội dung và kết xuất Markdown dưới dạng các lớp bổ sung. Chính sách bảo mật nội dung và đánh dấu thêm các giai đoạn riêng biệt. Markdown tạo ra HTML vẫn cần hiển thị an toàn, trong khi CSP có thể hạn chế hậu quả nhưng không khắc phục được quyết định đầu ra không an toàn.
Xác định những gì điều này không làm trước khi chạy lựa chọn ba thao tác. Lưu kết xuất đánh dấu bìa và làm điều khiển, kiểm tra các điểm mã đằng sau chính sách bảo mật nội dung và ánh xạ các lớp bổ sung tới trình thông dịch tiếp theo. Điều này làm cho bằng chứng lựa chọn ba thao tác có thể kiểm tra được đối với nhà phát triển đang xây dựng hệ thống nhận xét điều tra lối thoát và vệ sinh html.
Takeaway: ToolAcre chỉ thực hiện thoát, không tước bỏ hoặc vệ sinh
Takeaway: ToolAcre chỉ thực hiện việc thoát ra, không thực hiện tẩy rửa hoặc vệ sinh. ToolAcre chỉ thực hiện trường hợp thoát. Nó không phải là chất khử trùng XSS và không chấp nhận HTML thù địch để hiển thị phong phú an toàn; nó chuyển đổi dữ liệu đầu vào trông giống đánh dấu thành văn bản HTML.
Công cụ kết nối mang đi thực hiện việc thoát tới đầu ra lựa chọn ba thao tác có thể quan sát được. Chỉ giữ không tước bỏ hoặc bên cạnh kết quả một lần, sau đó xác minh xem việc vệ sinh đi vào bằng chứng lựa chọn ba thao tác. Giờ đây, nhà phát triển đang xây dựng hệ thống nhận xét có thể xem xét bằng chứng lựa chọn ba thao tác như một lối thoát hẹp so với việc tìm kiếm html hợp lý. Quyết định thực tế đằng sau bài viết này rất cụ thể: Thoát hiển thị đánh dấu dưới dạng văn bản, loại bỏ nó và dọn dẹp sẽ giữ một tập hợp con an toàn. Bài đăng này giải thích mỗi kỹ thuật thực sự làm gì, mỗi kỹ thuật đều thất bại ở đâu và cách chọn kỹ thuật phù hợp cho đầu vào của bạn. Hành động của người đọc cũng cụ thể không kém: Liên kết tới bộ thoát thực thể HTML và minh họa việc thoát khỏi một đoạn thông tin đầu vào của người dùng để nó hiển thị dưới dạng đánh dấu theo nghĩa đen.