Chúng tôi có một ứng dụng web nội bộ hoạt động như một kho lưu trữ mà người dùng có thể tải lên các tệp. Các tệp này có thể là bất kỳ định dạng nào, bao gồm các trang HTML. Chúng tôi đã thử nghiệm hơn trong IE8, nếu bạn tải xuống tệp HTML chứa một số tập lệnh cố gắng truy cập cookie của bạn và sau khi tải xuống, bạn chọn tùy chọn "Mở", tập lệnh thực thi và nhận thông tin cookie của bạn mà không vấn đề.Làm cách nào để tránh XSS trong tải xuống HTML?
Thực ra, tập lệnh đó có thể sử dụng đối tượng XmlHttpRequest để gọi máy chủ và thực hiện một số thao tác độc hại trong phiên của người dùng đã tải xuống tệp.
Có cách nào để tránh điều này không? Chúng tôi đã thử nghiệm rằng cả Chrome và Firefox đều không cho phép điều này xảy ra. Làm cách nào để tránh hành vi này trong bất kỳ trình duyệt nào, bao gồm IE8?
"Mở" thực sự làm gì? Hiển thị trang trong trình duyệt? Nếu có, URL của trang sẽ xảy ra khi nào? – bzlm
@ bzlm: Giống như bất kỳ tệp đính kèm nào; nếu bạn buộc trình duyệt nhắc cửa sổ tải xuống (có bố cục nội dung), bạn vẫn có thể nhấp vào mở và mở bằng url được sử dụng để tải nó, hiển nhiên trên cùng tên miền với cookie của anh ấy, do đó đề xuất của tôi về chạy (tải xuống) trên miền thay thế. –
@bzlm đang đi đúng hướng: Nếu bạn mở một tệp HTML cục bộ, nó sẽ không thể truy cập cookie, cũng như không đưa ra các yêu cầu Ajax, đến một máy chủ từ xa do chính sách miền đơn. Chỉ khi nó được mở trực tiếp trên máy chủ có thể. –