Ứng dụng trang đơn của chúng tôi nhúng video từ Youtube cho người dùng cuối. Mọi thứ hoạt động tốt nếu người dùng không có quyền truy cập vào miền Youtube và nội dung của các trang của miền đó.Làm cách nào để xác thực rằng một miền nhất định có thể truy cập được từ trình duyệt?
Tuy nhiên, chúng tôi thường xuyên chạy vào người dùng có quyền truy cập vào Youtube bị chặn bởi hộp lọc web trên mạng của họ, chẳng hạn như https://us.smoothwall.com/web-filtering/. Thách thức ở đây là bộ lọc không thực sự giết yêu cầu, nó chỉ trả về một trang khác thay vì trạng thái HTTP 200. Trang thường nói điều gì đó dọc theo dòng "hey, xin lỗi, nội dung này bị chặn".
Một tùy chọn là cố gắng tìm nạp https://www.youtube.com/favicon.ico
để chứng minh rằng miền có thể truy cập được. Vấn đề là các bộ lọc này thường liên quan đến chứng chỉ SSL tùy chỉnh để cho phép họ kiểm tra nội dung HTTP (xem: https://us.smoothwall.com/ssl-filtering-white-paper/), vì vậy tôi không thể dựa vào việc TLS đánh bắt nội dung được trao đổi với tôi bằng chứng chỉ không chính xác. tệp favicon.ico
hoàn toàn hợp lệ, ngoại trừ một trang web khác. Ngoài ra còn có toàn bộ vấn đề CORS phát hành một XHR từ miền của chúng tôi đối với miền của youtube.com
, có nghĩa là nếu tôi muốn nhận được rằng favicon.ico
Tôi phải làm điều đó theo phong cách JSONP. Tuy nhiên, ngay cả khi sử dụng hình ảnh cũ <img>
Tôi không thể kiểm tra nội dung của hình ảnh vì CORS, xem Get image data in JavaScript?, vì vậy tôi bị kẹt với cách tiếp cận đó.
Có cách nào được chứng minh và đáng tin cậy để giải quyết tình huống này và thử nghiệm khả năng hiển thị cấp trình duyệt đối với một miền cụ thể không?
Chúc mừng.