Tôi đang sử dụng xương sống, và cách tổng quát để thông qua các bộ sưu tập khi tải trang làThoát</script> thẻ bên javascript
window.router = new Routers.ManageRouter({store: #{@store.to_json});
đó là tốt và hoạt động tốt, cho đến khi ai đó quyết định thêm dòng chữ "<script>alert("owned")</script>
"vào một trong các trường lưu trữ. cuối cùng </script>
rõ ràng sẽ đóng javascript. Làm thế nào điều này có thể được phá vỡ?
:javascript
$(function() {
window.router = new Dotz.Routers.ManageRouter({store: #{@store.to_json}});
Backbone.history.start();
});
Các kết quả trên:
<script>
//<![CDATA[
$(function() {
window.router = new Dotz.Routers.ManageRouter({store: '{"_id":"4f3300e19c2ee41d9a00001c", "points_text":"<script>alert(\"hey\");</script>"'});
Backbone.history.start();
});
//]]>
</script>
nope. nó sẽ vẫn hiển thị một cái gì đó như '{id: '324234', văn bản: '' ...' trong khi sẽ đóng tập lệnh – CamelCamelCamel
bạn có thể đăng HTML của trang được hiển thị không? – Blacksad
đã cập nhật câu hỏi. – CamelCamelCamel