gpt4 book ai didi

ajax - 如何验证浏览器是否可以访问某个域?

转载 作者:行者123 更新时间:2023-12-01 17:20:32 25 4
gpt4 key购买 nike

我们的单页应用程序嵌入了来自 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? ,所以我坚持采用这种方法。

是否有任何经过验证且可靠的方法来处理这种情况并测试特定域的浏览器级可达性?

干杯。

最佳答案

一般来说,想要良好运行的 Web 代理通常会使用可检测到的附加响应 header 来注释 HTTP session 。

因此,构建中间人检测器的一种方法可能是检查这些响应 header ,并比较位于 MITM 后面和不位于 MITM 后面的结果。

许多公共(public)网站都会显示任意请求的 header ; Redbot 就是其中之一。

因此,也许您可​​以要求内容被修改的一方访问如下网址:youtube favicon via redbot .

一旦收集到足够的样本,您就可以启发式地构建一个检测器。

此外,某些 CDN(例如 Akamai)将允许客户从其网络中的远程代理位置访问 URL。尽管它们不太可能位于阻塞防火墙后面,但这可能会提供更好的覆盖范围。

关于ajax - 如何验证浏览器是否可以访问某个域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41497664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com