2009-05-15 13 views

Trả lời

1

Có thể đảm bảo rằng nó trả về một chuỗi. Cách sử dụng tôi đã thấy là lấy đầu vào và trả về một giá trị mà bạn có thể gán cho một biến trong javascript.

var message = <% = AntiXss.JavaScriptEncode (tin nhắn)%>;

Bây giờ, bất kể thông điệp gì, thông báo biến js sẽ có đầu vào chính xác được thoát một cách thích hợp, vì vậy nếu một số người cố gắng đưa javascript vào thông điệp đó, họ sẽ chỉ thấy kết quả của thư được gán cho thư biến.

+1

Phải. Nhưng thường thì tôi thấy mình sử dụng JavaScriptEncode để mã hóa đầu vào người dùng không tin cậy tạo thành * phần * của chuỗi và trong kịch bản đó, nó chỉ gây khó chịu để nối với '+' hoặc xóa dấu ngoặc kép theo cách thủ công. Tôi cũng cho rằng đây không phải là hành vi mà người ta mong đợi vì không có phương pháp nào khác thực hiện bất kỳ điều gì tương tự (ví dụ: HtmlAttributeEncode không bọc kết quả trong dấu ngoặc kép). –

+2

Không thể đồng ý hơn. Rất khó chịu – Erlend

Các vấn đề liên quan