【发布时间】:2017-05-20 17:48:14
【问题描述】:
我们的单页应用嵌入了来自 Youtube 的视频,供最终用户使用。如果用户确实有权访问 Youtube 域和该域页面的内容,那么一切都会很好。
然而,我们经常遇到用户访问 Youtube 被他们网络上的网络过滤器框阻止,例如 https://us.smoothwall.com/web-filtering/ 。这里的挑战是过滤器实际上并没有终止请求,它只是返回另一个页面而不是 HTTP 状态 200。该页面通常会说“嘿,抱歉,此内容被阻止”。
一种选择是尝试获取https://www.youtube.com/favicon.ico 以证明该域是可访问的。问题是这些过滤器通常涉及自定义 SSL 证书以允许他们检查 HTTP 内容(请参阅:https://us.smoothwall.com/ssl-filtering-white-paper/),因此我不能依靠 TLS 捕获使用不正确证书为我交换的内容,我会而是收到一个完全有效的favicon.ico 文件,但来自不同站点的文件除外。还有从我们的域针对youtube.com 的域发出XHR 的整个CORS 问题,这意味着如果我想获得favicon.ico,我必须使用JSONP 样式。但是,即使使用普通的旧 <img>,由于 CORS,我也无法测试图像的内容,请参阅 Get image data in JavaScript?,所以我坚持使用这种方法。
是否有任何经过验证且可靠的方法来处理这种情况并测试浏览器级别对特定域的可访问性?
干杯。
【问题讨论】:
标签: ajax security networking browser same-origin-policy