Tôi có một trang web đang chạy tại pixie.strd6.com và hình ảnh được lưu trữ thông qua Amazon S3 bằng CNAME cho images.pixie.strd6.com.HTML5 Canvas getImageData và Chính sách gốc tương tự
Tôi muốn để có thể rút ra những hình ảnh này đến một canvas HTML5 và gọi phương thức getImageData nhưng nó ném Error: SECURITY_ERR: DOM Exception 18
Tôi đã cố gắng thiết lập window.domain = "pixie.strd6.com"
, nhưng điều đó không có tác dụng.
Bên cạnh đó, $.get("http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982", function(data) {console.log(data)})
cũng ném một lỗi: XMLHttpRequest cannot load http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982 . Origin http://pixie.strd6.com is not allowed by Access-Control-Allow-Origin.
Lý tưởng nhất là HTML5 canvas sẽ không chặn gọi getImageData
từ tên miền phụ. Tôi đã xem xét thiết lập một tiêu đề Access-Control-Allow-Origin trong S3, nhưng chưa thành công.
Bất kỳ trợ giúp hoặc cách giải quyết nào đều được đánh giá cao.
chính sách cùng một nguồn gốc Đây là điều ngu xuẩn nhất bao giờ hết . Nếu tôi là một đoạn mã JavaScript độc hại và tôi muốn tải dữ liệu độc hại, tôi sẽ chỉ bao gồm thẻ tập lệnh tùy ý trong trang, không đọc "s3kri7 c0mm4nd5" từ dữ liệu hình ảnh. Những người duy nhất muốn đọc dữ liệu hình ảnh là khách hàng bên devs. Đối với việc ăn cắp "dữ liệu hình ảnh bí mật hàng đầu" từ một VPN, nếu trang web của bạn đã được xss'd thì keylogging sẽ tàn phá hơn nhiều. Tất cả điều này "bảo vệ" phục vụ để làm là làm nặng thêm các nhà phát triển hợp pháp cố gắng để có được JavaScript để làm đơn giản nhất của nhiệm vụ. –
SOP đang bảo vệ chống lại một vectơ tấn công hợp pháp tại đây.Giả sử bạn có một album ảnh riêng trên trang web chia sẻ ảnh (hoặc kiểm tra hình ảnh được lưu trữ trong ngân hàng trực tuyến của bạn): không có bảo vệ vải bẩn, * bất kỳ trang nào trên Web * bạn truy cập sẽ có khả năng lấy những hình ảnh đó nếu họ biết URL và bạn đã đăng nhập vì các yêu cầu được gửi từ '
' tags ** sử dụng cookie của bạn **. Vấn đề ở đây không phải là trang web XSS đã bị xâm nhập; vấn đề là * bất kỳ trang nào trên Web * đều có thể tìm nạp và đọc hình ảnh trên canvas bằng cookie xác thực của bạn. –
apsillers
** tl; dr: ** Hiện tại, bất kỳ trang web tên miền chéo nào cũng có thể hiển thị * hình ảnh yêu cầu của bạn (ảnh riêng tư, kiểm tra hình ảnh, v.v.) trong thẻ '
', nhưng, nhờ SOP, họ không thể * đọc * nội dung của những hình ảnh đó trong canvas để, ví dụ, lưu chúng vào máy chủ. –
apsillers