Tiếng Việt

Công cụ dành cho nhà phát triển · HTML WYSIWYG trình chỉnh sửa

Khử trùng đã dán HTML: Những gì cần loại bỏ trước khi nó đến CMS hoặc Email của bạn

· Cách thức hoạt động

html bảo vệ text-cleanup

Cấu trúc văn bản được phép đi qua một cổng trong khi kiểu tập lệnh và liên kết không an toàn bị từ chối
Hình minh họa vector ToolAcre gốc

Giải thích công dụng của trình dọn dẹp HTML, từ các thẻ và thuộc tính được đưa vào danh sách cho phép đến các tập lệnh đã xóa và URL bị vô hiệu hóa, cũng như cách kiểm tra đánh dấu trước tiên giúp viết các quy tắc dọn dẹp dễ dàng hơn.

Đoạn mã được dán mang theo onclick — mở ra với rủi ro tiềm ẩn khi nhập văn bản đa dạng thức

Một mỏ neo được dán có thể ẩn một onclick bên cạnh một điểm đến vô tội. ToolAcre viết thường mọi tên thuộc tính và chỉ giữ lại các thuộc tính được liệt kê rõ ràng cho phần tử được chấp nhận, do đó, onclick biến mất ngay cả khi cách viết hoa của nó bị thay đổi. Báo cáo xóa xác định trình xử lý sự kiện đó thay vì âm thầm hiển thị nguồn không thay đổi.

Ranh giới này hoạt động trước khi chèn định dạng phong phú, khi nguồn trở về chế độ trực quan, trước khi sao chép, trước khi trích xuất văn bản thuần túy và một lần nữa trong khi xây dựng tài liệu xem trước. Việc lặp lại làm giảm tình trạng bỏ qua ngẫu nhiên giữa các hành động nhưng dự án vẫn từ chối gọi trình mã thông báo viết tay là bộ lọc XSS có mục đích chung.

Tại sao danh sách cho phép đánh bại danh sách chặn — giải thích rằng việc đặt tên những gì được phép sẽ an toàn hơn việc cố gắng liệt kê mọi cấu trúc nguy hiểm

Danh sách cho phép bắt đầu bằng cách đặt tên cho cấu trúc được phép: đoạn văn, tiêu đề, thành phần ngữ nghĩa cùng dòng, danh sách, danh sách mô tả, trích dẫn, thành phần giống mã và điểm neo. Một trình bao bọc thông thường không xác định sẽ mất thẻ trong khi vẫn giữ lại văn bản. Vùng chứa nguy hiểm như tập lệnh, kiểu, iframe, biểu mẫu, SVG hoặc MathML cũng mất nội dung.

Danh sách chặn sẽ cần phải lường trước mọi công trình nguy hiểm hoặc không được hỗ trợ. Danh sách cho phép từ chối những gì nó không hiểu. Đó là một lựa chọn phù hợp cho đầu ra bị hạn chế của một biên tập viên, tuy nhiên nó vẫn bị giới hạn bởi mã thông báo của nó. Quá trình khôi phục lỗi trình duyệt HTML5 có thể tạo ra một cây khác với trình phân tích cú pháp nhỏ hơn khi có liên quan đến dữ liệu nhập sai định dạng có chủ ý.

Thẻ, thuộc tính và sơ đồ URL — bao gồm ba lớp mà bộ lọc khử trùng, với các quyết định điển hình cho mỗi lớp

Quá trình lọc xảy ra ở ba lớp. Các yếu tố quyết định từ vựng cấu trúc. Thuộc tính mỗi phần tử chỉ cho phép một số giá trị như liên kết href và tiêu đề, trích dẫn trích dẫn, tiêu đề viết tắt, bắt đầu và loại danh sách theo thứ tự. Kiểm tra URL sau đó giải mã các thực thể, loại bỏ các điều khiển và khoảng trắng khỏi thăm dò và kiểm tra sơ đồ kết quả.

Các lược đồ được chấp nhận là http, https, mailto, tel và ftp, cùng với các dạng tương đối không có lược đồ rõ ràng. JavaScript, dữ liệu, tệp, blob, vbscript và các ví dụ về giới thiệu đều bị từ chối trong các cuộc kiểm tra. Các liên kết còn tồn tại sẽ nhận được giá trị rel, nhưng sự bổ sung đó không thể thay thế cho chính sách đích hoặc việc xem xét liên kết.

Kiểu: tách, cho phép hoặc viết lại - thảo luận về cách xử lý kiểu nội tuyến và lý do tại sao nhiều hệ thống loại bỏ hoàn toàn kiểu này

Thuộc tính phong cách được loại bỏ bán buôn. Mô-đun này không cố gắng phân tích cú pháp các khai báo, giữ lại tập hợp con an toàn hoặc viết lại mã thông báo thiết kế. Chính sách đó sẽ loại bỏ giao diện được sao chép và giao diện yêu cầu dựa trên CSS cùng nhau. Các thuộc tính lớp, id và dữ liệu cũng biến mất, tạo ra các đánh dấu di động nhưng ít biểu cảm hơn.

Các hệ thống có yêu cầu về kiểu dáng chân thực cần có chính sách được xem xét khác. Việc thêm kiểu vào danh sách cho phép này mà không có chất khử trùng CSS sẽ thay đổi đáng kể bề mặt bảo mật của nó. Việc triển khai hiện tại tránh được vấn đề đó thay vì tuyên bố giải quyết CSS sự an toàn cho các mảnh thù địch tùy ý.

Ví dụ đã hoạt động: lấy quy tắc từ danh sách cho phép được ghi lại trong tài liệu của ToolAcre, không phải từ bản cố định dành riêng cho Word

Bắt đầu với `<div class="WordSection"><p style="color:red" onclick="x()">Notice <strong>today</strong></p></div>`. Div không được bao bọc, lớp và kiểu không thể tồn tại, onclick bị xóa và đoạn văn cộng với phần tử mạnh vẫn còn. Kết quả tuân theo chính sách chung mà không xác nhận ứng dụng nào đã tạo ra trình bao bọc.

Thêm một href javascript và một khối tập lệnh. Mỏ neo giữ các từ hiển thị nhưng mất href; kịch bản và nội dung biến mất. Đọc các lý do được báo cáo. Bài tập này giúp xác định chính sách máy chủ nhưng việc sao chép tập hợp con chính xác của ToolAcre một cách mù quáng có thể bỏ qua các thành phần mà ứng dụng của bạn yêu cầu hoặc cho phép các URL mà mô hình mối đe dọa của bạn cấm.

Vệ sinh phía máy chủ so với phía máy khách - giải thích lý do tại sao máy chủ phải vệ sinh ngay cả khi trình duyệt đã làm như vậy

Tính năng lọc máy khách cải thiện khả năng soạn thảo cục bộ nhưng máy chủ nhận yêu cầu do người dùng kiểm soát không thể tin cậy được. Những kẻ tấn công có thể bỏ qua trang, gọi trực tiếp đến điểm cuối hoặc khai thác sự khác biệt của trình phân tích cú pháp. Máy chủ phải phân tích cú pháp và dọn dẹp lại bằng cách triển khai nhận biết HTML5 được duy trì được định cấu hình cho ngữ cảnh hiển thị của nó.

Mã hóa đầu ra cũng vẫn riêng biệt. HTML dự định là văn bản phải được thoát khỏi mẫu thay vì được chèn dưới dạng đánh dấu. Một mảnh được cố ý hiển thị dưới dạng HTML cần được dọn dẹp trước khi lưu trữ hoặc xuất ra theo kiến ​​trúc. Bản xem trước trong hộp cát chỉ chứng minh rằng bản xem trước này không cấp cho tập lệnh, biểu mẫu hoặc quyền truy cập cùng nguồn gốc.

Công cụ này bao gồm những gì - thu hẹp lọc đầu ra của trình chỉnh sửa, không phải dọn dẹp đầu vào thù địch chung

ToolAcre lọc bề mặt đầu ra của chính nó, trái với tuyên bố của sổ làm việc rằng nó chỉ là một công cụ kiểm tra. Việc điều chỉnh chính xác sẽ hẹp hơn: nó không phải là công cụ khử trùng XSS có mục đích chung cho đầu vào thù địch tùy ý. Nguồn nói điều này một cách rõ ràng và ghi lại sự khác biệt có thể có của trình phân tích cú pháp.

Khung nội tuyến có khả năng bảo vệ chuyên sâu để hiển thị bên trong ToolAcre. Thuộc tính hộp cát trống của nó không cho phép thực thi tập lệnh, gửi biểu mẫu hoặc quyền truy cập cùng nguồn gốc và chính sách liên kết giới thiệu là không có liên kết giới thiệu. Khi HTML được sao chép sang nơi khác, khung đó không còn bảo vệ nó nữa. An toàn xuất bản thuộc về hệ thống tiếp nhận.

Bài học rút ra: kiểm tra cục bộ, vệ sinh trên máy chủ - tóm tắt quy trình làm việc và cách trình chỉnh sửa giúp bạn biết những gì người vệ sinh sẽ phải đối mặt

Kiểm tra cục bộ, vệ sinh trên máy chủ và hiển thị theo ngữ cảnh. Đó là ba bước riêng biệt. ToolAcre giúp tiết lộ nội dung đã dán và cung cấp tập hợp con dự thảo thận trọng, trong khi thông báo xóa giúp hiển thị hiệu ứng chính sách trước khi phân đoạn tiếp cận quy trình làm việc qua email hoặc CMS.

Không tiếp thị bản xem trước thành công làm bằng chứng chống lại XSS. Chỉ sử dụng tải trọng thử nghiệm trong nội dung dùng một lần, bảo quản nguồn thô riêng biệt khi cần điều tra và xác minh việc vệ sinh điểm đến một cách độc lập. Yêu cầu bảo mật phải dừng chính xác ở nơi mã và ranh giới hiển thị dừng.