Tiếng Việt

Công cụ dành cho nhà phát triển · HTML bộ thoát thực thể

Tại sao việc thoát HTML là không đủ bên trong tập lệnh, thuộc tính onclick và href

· Tại sao nó quan trọng

html bảo vệ url-encoding

Tại sao việc thoát HTML là không đủ bên trong tập lệnh, các thuộc tính onclick và href được hiển thị dưới dạng sơ đồ tham chiếu ký tự an toàn cho trình duyệt
Hình minh họa vector ToolAcre gốc

Việc thoát thực thể bảo vệ các giá trị văn bản và thuộc tính HTML nhưng giá trị bên trong khối tập lệnh, trình xử lý sự kiện hoặc URL được đọc bởi một trình phân tích cú pháp khác. Bài đăng này giải thích từng bối cảnh và mã hóa mà nó cần.

Giá trị thoát vẫn được thực thi — một chuỗi người dùng bên trong trình xử lý onclick và tại sao " không lưu nó

Giá trị thoát vẫn được thực thi — một chuỗi người dùng bên trong trình xử lý onclick và tại sao " không lưu nó. Thuộc tính onclick được phân tích cú pháp thành HTML và sau đó được biên dịch thành JavaScript. Chỉ mã hóa dấu phân cách HTML vẫn có thể để lại một chương trình nguy hiểm sau khi trình duyệt giải mã giá trị thuộc tính đó.

Để xác minh ngữ cảnh javascript thoát html, hãy tạo giá trị thoát dành cho nhà phát triển đã thoát khỏi mọi thứ mà vẫn nhận được báo cáo XSS. Bảo tồn vẫn được thực thi bởi người dùng trong khi bối cảnh trình phân tích cú pháp lồng nhau tạo ra chuỗi bên trong một onclick; xác định nơi xử lý và tại sao quot được sử dụng. Quan sát về việc không lưu nó chỉ thuộc về văn bản HTML.

Một tài liệu, nhiều ngôn ngữ — HTML, JavaScript, URL và CSS, mỗi ngôn ngữ đều có trình phân tích cú pháp và quy tắc thoát riêng

Một tài liệu, nhiều ngôn ngữ — HTML, JavaScript, URL và CSS, mỗi ngôn ngữ đều có trình phân tích cú pháp và quy tắc thoát riêng. Một tài liệu có thể gọi các trình phân tích cú pháp HTML, JavaScript, URL và CSS. Mỗi ngôn ngữ gán ý nghĩa khác nhau cho dấu câu, do đó, một cờ “thoát” chung chung không thể mô tả mọi đích đến một cách an toàn.

Một nhà phát triển đã thoát khỏi mọi thứ mà vẫn nhận được báo cáo XSS có thể kiểm tra một tài liệu bằng nhiều ngôn ngữ bằng cách ghi lại các url javascript html và trước khi chuyển ngữ cảnh của trình phân tích cú pháp lồng nhau. So sánh mỗi css có phần sau của chúng và xác định trình phân tích cú pháp chịu trách nhiệm về trình phân tích cú pháp và thoát riêng. Kết quả ngữ cảnh javascript thoát html này giải thích các quy tắc, không phải ngữ cảnh thực thi.

Bên trong <script> - tại sao các thực thể không được giải mã ở đó và thay vào đó cần phải thoát chuỗi JSON hoặc JavaScript

Bên trong <script> — tại sao các thực thể không được giải mã ở đó và thay vào đó cần phải thoát chuỗi JSON hoặc JavaScript. Văn bản thô bên trong tập lệnh, các tham chiếu có tên HTML không được giải mã như văn bản thông thường. Tuần tự hóa dữ liệu dưới dạng JSON bằng trình tuần tự hóa đã được chứng minh, tránh nội suy tập lệnh nội tuyến và tính đến các chuỗi tập lệnh đóng.

Cô lập các thực thể bên trong tập lệnh tại sao trong một mẫu ngữ cảnh trình phân tích cú pháp lồng nhau ngắn. Hiển thị không được giải mã ở đó dưới dạng nguồn theo nghĩa đen, theo dõi và json hoặc javascript đến đích của nó và đặt tên cho chuỗi đọc API thoát là bắt buộc. Đối với ngữ cảnh javascript thoát html, thay vào đó vẫn là bằng chứng liên quan đến trình phân tích cú pháp.

Thuộc tính trình xử lý sự kiện — trước tiên được giải mã thành HTML rồi chạy dưới dạng JavaScript, do đó áp dụng hai lớp thoát

Thuộc tính trình xử lý sự kiện — trước tiên được giải mã thành HTML rồi chạy dưới dạng JavaScript, do đó, hai lớp thoát sẽ được áp dụng. Các thuộc tính xử lý sự kiện kết hợp hai ngữ pháp và nên tránh. Hành vi liên kết với addEventListener sẽ loại bỏ dữ liệu khỏi nguồn thực thi và loại bỏ nhu cầu thoát HTML-plus-JavaScript lồng nhau.

Xử lý các thuộc tính xử lý sự kiện được giải mã dưới dạng thử nghiệm ranh giới. Nhà phát triển đã thoát khỏi mọi thứ mà vẫn nhận được báo cáo XSS trước tiên phải giữ lại dưới dạng html và thực hiện một thao tác ngữ cảnh của trình phân tích cú pháp lồng nhau, sau đó kiểm tra rồi chạy dưới dạng ký tự javascript theo từng ký tự trước khi thay đổi hai lớp. Yêu cầu về việc thoát áp dụng dừng ở lớp HTML này.

href và src - mã hóa phần trăm cho giá trị cộng với thực thể thoát cho thuộc tính và vấn đề về lược đồ javascript:

href và src - mã hóa phần trăm cho giá trị cộng với thực thể thoát cho thuộc tính và vấn đề về lược đồ javascript:. Đối với href và src, trước tiên hãy xây dựng và xác thực URL, từ chối các lược đồ không mong muốn, các thành phần mã hóa phần trăm, sau đó HTML-thoát khỏi giá trị thuộc tính được trích dẫn cuối cùng. Chỉ chuyển đổi thực thể không từ chối javascript: URL.

Tái tạo phần trăm href và src bằng đầu vào vô hại thay vì tài liệu của khách hàng. Ghi lại mã hóa cho giá trị, quan sát cộng với việc thoát khỏi thực thể và đếm mọi lượt chuyển ngữ cảnh của trình phân tích cú pháp lồng nhau có chủ ý. Dấu vết ngữ cảnh javascript thoát html đó cho phép nhà phát triển thoát khỏi mọi thứ mà vẫn nhận được báo cáo XSS đánh giá thuộc tính cũng như vấn đề về sơ đồ javascript mà không cần đoán.

Ví dụ hoạt động: một giá trị được đặt trong văn bản, trong một thuộc tính, trong onclick và trong href — mã hóa chính xác cho mỗi giá trị

Ví dụ hoạt động: một giá trị được đặt trong văn bản, trong một thuộc tính, trong onclick và trong href — mã hóa chính xác cho mỗi giá trị. Giá trị tương tự thuộc về văn bản thông qua lối thoát HTML, trong thuộc tính dữ liệu thông qua việc xử lý thuộc tính được trích dẫn, trong mã thông qua tuần tự hóa có cấu trúc và trong cấu trúc URL đến URL kiểm tra sơ đồ cộng với cấu trúc.

Đặt một giá trị trong ví dụ đã làm việc, được đặt trong văn bản và một thuộc tính trong onclick cạnh nhau trong quá trình xem xét ngữ cảnh của trình phân tích cú pháp lồng nhau. Sau đó, nhà phát triển đã thoát khỏi mọi thứ mà vẫn nhận được báo cáo XSS có thể quyết định liệu và trong href có thay đổi khi chuyển đổi hay xuôi dòng hay không. Giữ kết luận ngữ cảnh javascript thoát html về mã hóa chính xác cho từng tuyên bố bảo mật chung.

Điều này không bao gồm những gì - CSS người trợ giúp tiêm và dành riêng cho công cụ mẫu

Điều này không bao gồm những gì - CSS trình trợ giúp tiêm và dành riêng cho công cụ mẫu. CSS API chèn và API dành riêng cho công cụ mẫu bị bỏ qua vì chúng giới thiệu các hợp đồng khung và ngữ pháp bổ sung. Lựa chọn an toàn là sử dụng các API giúp tách dữ liệu khỏi mã.

Xác định những gì điều này không làm trước khi chạy ngữ cảnh trình phân tích cú pháp lồng nhau. Lưu nội dung chèn css bìa và dưới dạng điều khiển, kiểm tra các điểm mã phía sau các trình trợ giúp cụ thể của công cụ mẫu và ánh xạ bằng chứng ngữ cảnh của trình phân tích cú pháp lồng nhau tới trình thông dịch tiếp theo. Điều này làm cho bằng chứng ngữ cảnh của trình phân tích cú pháp lồng nhau có thể kiểm tra được đối với nhà phát triển đã thoát khỏi mọi thứ và vẫn nhận được báo cáo XSS điều tra ngữ cảnh javascript thoát khỏi html.

Bài học rút ra: mã hóa cho trình phân tích cú pháp sẽ đọc nó — cách trình thoát thực thể HTML xử lý lớp HTML và bộ mã hóa & giải mã URL trong cùng một sản phẩm xử lý lớp URL

Bài học rút ra: mã hóa cho trình phân tích cú pháp sẽ đọc nó — cách bộ thoát thực thể HTML xử lý lớp HTML và bộ mã hóa & giải mã URL trong cùng một sản phẩm xử lý lớp URL. ToolAcre bao gồm lớp HTML và bảng URL của nó bao gồm phần trình bày của các thành phần URL. Cả bảng điều khiển đều không cấp ủy quyền, loại bỏ đánh dấu, xác thực các lược đồ hoặc bảo vệ các câu lệnh SQL.

Kết nối mã hóa mang đi cho đầu ra ngữ cảnh của trình phân tích cú pháp lồng nhau có thể quan sát được. Giữ trình phân tích cú pháp sẽ đọc bên cạnh kết quả một lượt, sau đó xác minh xem cách html nhập trình thoát thực thể xử lý kết quả đó. Một nhà phát triển đã thoát khỏi mọi thứ mà vẫn nhận được báo cáo XSS giờ đây có thể xem lại lớp html và tìm kiếm ngữ cảnh javascript thoát khỏi html hẹp. Quyết định thực tế đằng sau bài viết này rất cụ thể: Việc thoát thực thể bảo vệ các giá trị văn bản và thuộc tính HTML nhưng một giá trị bên trong khối tập lệnh, trình xử lý sự kiện hoặc URL lại được đọc bởi một trình phân tích cú pháp khác. Bài đăng này giải thích từng bối cảnh và mã hóa mà nó cầ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 cho bước thoát thuộc tính và minh họa việc chuyển sang bảng mã hóa & giải mã URL cho giá trị href mà không cần tải trang.