Nasza aplikacja do obsługi pojedynczych stron umieszcza filmy z serwisu YouTube dla użytkowników końcowych. Wszystko działa świetnie, jeśli użytkownik ma dostęp do domeny Youtube i do zawartości stron tej domeny.Jak sprawdzić, czy dana domena jest dostępna z przeglądarki?
Jednak często napotykamy użytkowników, których dostęp do serwisu YouTube jest zablokowany przez skrzynkę filtrów internetowych w ich sieci, taką jak https://us.smoothwall.com/web-filtering/. Wyzwanie polega na tym, że filtr faktycznie nie zabija żądania, po prostu zwraca kolejną stronę zamiast ze statusem HTTP 200. Strona zwykle mówi coś w stylu "hej, przepraszam, ta treść jest zablokowana".
Jedną z opcji jest próba pobrania https://www.youtube.com/favicon.ico
w celu udowodnienia, że domena jest osiągalna. Problem polega na tym, że filtry te zwykle wymagają niestandardowego certyfikatu SSL, aby umożliwić im sprawdzenie zawartości HTTP (patrz: https://us.smoothwall.com/ssl-filtering-white-paper/), więc nie mogę liczyć na to, że TLS łapie treść, która została zamieniona na mnie z niepoprawnym certyfikatem, a ja zamiast tego otrzymam całkowicie poprawny plik favicon.ico
, z wyjątkiem innej witryny. Istnieje również cały problem CORS dotyczący wydania XHR z naszej domeny przeciwko domenie youtube.com
, co oznacza, że jeśli chcę uzyskać to favicon.ico
, muszę to zrobić w stylu JSONP. Jednak nawet przy użyciu zwykłego starego <img>
nie mogę przetestować zawartości obrazu z powodu CORS, zobacz Get image data in JavaScript?, więc utknąłem z takim podejściem.
Czy istnieją sprawdzone i niezawodne sposoby radzenia sobie z tą sytuacją i testowania możliwości osiągania poziomu przeglądarki w odniesieniu do konkretnej domeny?
Pozdrawiam.