2017-01-06 13 views
5

Ứ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.

Trả lời

2

Nói chung, các proxy web muốn phát độc đáo thường chú thích cuộc hội thoại HTTP với các tiêu đề phản hồi bổ sung có thể được phát hiện.

Vì vậy, một cách tiếp cận để xây dựng một máy dò tìm người ở giữa có thể kiểm tra các tiêu đề phản hồi đó và so sánh các kết quả từ khi ở phía sau MITM và khi không.

Nhiều trang web công khai sẽ hiển thị tiêu đề cho một yêu cầu tùy ý; redbot là một.

Vì vậy, có lẽ bạn có thể yêu cầu bên có nội dung đang được sửa đổi để truy cập url như: youtube favicon via redbot.

Khi bạn thu thập đủ mẫu, bạn có thể xây dựng thiết bị dò tìm bằng phương pháp heuristically.

Ngoài ra, một số CDN (ví dụ: Akamai) sẽ cho phép khách hàng truy cập URL từ các vị trí proxy từ xa trong mạng của họ. Điều đó có thể cung cấp mức độ phù hợp tốt hơn, mặc dù chúng không có khả năng đứng sau tường lửa chặn.

Các vấn đề liên quan