Tôi đã sử dụng Microsoft's AntiXss Library và đã tự hỏi liệu có một lý do chính đáng tại sao phương pháp JavaScriptEncode
của nó kết thúc tốt đẹp kết quả trong dấu nháy đơn không? Hành vi đó có vẻ độc đáo.Có lý do chính đáng nào khiến kết quả của AntiXss.JavaScriptEncode kết thúc tốt đẹp trong các dấu nháy đơn không?
5
A
Trả lời
5
Thực ra phiên bản 3.0beta mới có cờ JavaScriptEncode (đầu vào chuỗi, bool flagforQuote). Đặt nó thành false, mang lại kết quả không có dấu ngoặc kép.
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.
Các vấn đề liên quan
- 1. Có lý do chính đáng nào khiến `deleteBy` không có loại chung nhất?
- 2. Có lý do chính đáng nào khiến #region và #endregion không hoạt động trong F #
- 3. Có đăng nhập ReSharper nào để tìm lý do tại sao thử nghiệm không kết thúc?
- 4. Emacs chế độ/hàm kết thúc tốt đẹp các nhà khai thác với các không gian
- 5. JUnit và Netty khiến đơn đăng ký kết thúc sớm
- 6. li ul li quá dài, dòng kết thúc tốt đẹp nhưng không có sự chú ý
- 7. Có lý do chính đáng nào để Setter.Value không phải là ContentProperty không?
- 8. Java Regex để loại bỏ bắt đầu/kết thúc dấu nháy đơn nhưng để lại bên trong dấu ngoặc kép
- 9. Làm cách nào để chèn giá trị chứa dấu nháy đơn (dấu nháy đơn)?
- 10. Dấu nháy đơn không bị thoát trong một chữ được định nghĩa trong strings.xml có khiến ứng dụng của tôi bị lỗi không? tài liệu chính thức
- 11. Biểu thức chính quy kết thúc
- 12. Có lý do nào khiến MicrosoftAjax.js không được rút gọn?
- 13. Có lý do chính đáng để 'tư nhân' hoạt động theo cách của Ruby?
- 14. Có lý do chính đáng nào để cho phép AssemblyVersion và AssemblyFileVersion khớp nhau không?
- 15. Có bao giờ có lý do chính đáng để sử dụng Sắp xếp Chèn không?
- 16. Có lý do chính đáng nào cho tiêu đề ListView chiếm vị trí không?
- 17. Làm cách nào để sử dụng dấu nháy đơn bên trong dấu nháy đơn?
- 18. Có bao giờ là lý do chính đáng để lưu trữ thời gian không có trong UTC không?
- 19. Tại sao "$ 1" kết thúc trong kết quả Regex.Replace() của tôi?
- 20. Thoát dấu nháy đơn trong regex?
- 21. Hiển thị các kết quả không rõ ràng của python ở dạng bảng, đẹp
- 22. Có lý do chính đáng nào để sử dụng các tham số cho các trường bóng không?
- 23. Làm cách nào để thay thế các dấu nháy đơn bằng dấu cách trong sed?
- 24. Có lý do nào khiến một số trang web không cho phép dấu chấm trong mật khẩu không?
- 25. Có lý do chính đáng để sử dụng tài sản/lĩnh vực công cộng không?
- 26. Dấu nháy đơn có hợp lệ trong HTML/XHTML không?
- 27. Android NumberPicker kết thúc tốt đẹp giá trị khi hiển thị giá trị được thay đổi
- 28. Tại sao encodeURIComponent không mã hóa dấu nháy đơn/dấu nháy đơn?
- 29. Firefox và Opera: SVG & kết quả nền có kết quả không tốt
- 30. lý do cơ bản so sánh == này là gì? (Kết quả đáng ngạc nhiên đối với tôi)
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). –
Không thể đồng ý hơn. Rất khó chịu – Erlend