Người dùng đã đóng góp hình ảnh trên trang web HTTPS mà không có cảnh báo nội dung hỗn hợp


9

Tôi có một diễn đàn nơi, giống như hầu hết các diễn đàn, người dùng có thể đăng ảnh. Tôi đã thiết lập HTTPS trên toàn trang web, nhưng tất nhiên hầu hết các hình ảnh bên ngoài được liên kết bằng HTTP, không phải HTTPS. Vì vậy, tải diễn đàn qua HTTPS cho thấy cảnh báo nội dung hỗn hợp, v.v.

Một số chiến lược để giải quyết vấn đề này là gì? Một số hình ảnh là từ trang web của riêng tôi để tôi có thể viết lại các URL đó để sử dụng HTTPS vì tôi biết nó sẽ hoạt động. Nhưng đối với các URL bên ngoài, nhiều URL không hoạt động với HTTPS vì vậy tôi không thể viết lại chăn.

Tôi có thể viết lại hình ảnh không an toàn thành liên kết thay vì hình ảnh nội tuyến, nhưng điều đó không tuyệt vời và có thể gây nhầm lẫn cho người dùng. Giải pháp nào tốt hơn?


2
Bạn có thể sử dụng camo ...
wb9688

2
Google đã không giải quyết điều này cho tìm kiếm hình ảnh. Tìm kiếm hình ảnh là "không an toàn:" i.imgur.com/8XVTQsi.png
Stephen Ostermiller


1
Tốt hơn tôi không biết, và nó có thể chạy theo luật bản quyền, nhưng một giải pháp kỹ thuật là tạo một bản sao của hình ảnh và phân phát từ một miền dưới sự kiểm soát của bạn, qua HTTPS ...
CVn

1
Cách thức của người nghèo: Khi lưu / chỉnh sửa, bạn có thể áp dụng logic để viết lại tất cả dữ liệu được dự định là src="http://someimage.jpg"tương đối có cấu trúc src="//someimage.jpg"thay vì ... hoặc chỉ xác nhận nó. Nếu bạn muốn khóa màu xanh lá cây nghiêm ngặt (trong đó hình ảnh không an toàn sẽ không làm mất khóa của bạn) sẽ thực thi HSTS. Sau đó, trong giao diện biên tập, hãy lưu ý rằng hình ảnh hiện phải có sẵn thông qua HTTPS, nếu không chúng sẽ không hiển thị. Một cái gì đó như "Rất tiếc, bạn đã mắc lỗi. Để ngăn chặn lạm dụng và tấn công MITM, tất cả các phương tiện truyền thông phải sử dụng HTTPS. Quay lại và sửa lỗi hoặc chọn nhà cung cấp hình ảnh khác."
dhaupin

Câu trả lời:


1

Không thể có tài nguyên không an toàn trong một trang bảo mật và không nhận được cảnh báo nội dung hỗn hợp.

Đối với các tác nhân người dùng hỗ trợ nó, lệnh upgrade-insecure-requestsnày là một hướng dẫn để cố tải tài nguyên qua https hoặc không thử.

Các tác nhân người dùng khác sẽ bỏ qua chỉ thị, tiếp tục tải các tài nguyên không an toàn.

Dưới đây là một bài viết trên trang web Google Developers thảo luận về điều này và các tùy chọn khác.


1

Chỉ nhận ra rằng tôi không bao giờ đăng giải pháp của tôi. Câu trả lời trong bình luận của Stephen là những gì đã giải quyết nó cho tôi. Nói tóm lại, tôi đã tạo một tập lệnh proxy thực hiện như sau:

  1. Nếu hình ảnh là https, hãy để nó một mình.
  2. Nếu hình ảnh là http và từ một trang web được biết là hỗ trợ https (ví dụ: trang web của riêng tôi, imgur.com, v.v.) thì hãy viết lại thành https.
  3. Mặt khác, nếu hình ảnh là http, hãy viết lại để sử dụng http://example.com/imgproxy?img=ORIGINALURL&hash=KEY

Sau đó, tập lệnh proxy tìm nạp hình ảnh HTTP, lưu trữ cục bộ và xuất dữ liệu hình ảnh. Trên các yêu cầu lặp đi lặp lại, nó xuất dữ liệu được lưu trữ trực tiếp. Câu trả lời SO được liên kết mô tả hàm băm bảo mật và các chi tiết khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.