我相信我的 ISP 对其服务器进行了恶意配置,有时当我请求一个页面时,例如http://www.somesite.org/ajax.htm,我收到的响应被一些不属于 www 的代码替换。 somesite.org。这不会发生在每个 HTTP 请求中,只是随机发生(早上可能有更高的概率)。HTTPS 不受影响。
被替换的代码包括重定向脚本,因此会导致一个烦人的情况:想象您正在向下滚动 FaceBook 并注意到一个有趣的帖子,然后突然一切都消失了,浏览器重定向到您的 ISP 提供的广告页面。您可以单击“后退”按钮,但浏览器会再次重定向到新页面。
典型的恶意响应如下所示:
<html>
<script language=javascript type="text/javascript">
window.location.replace("http://bjdnserror2.wo.com.cn:8080?HOST="
+ location.hostname + "&R="
+ location.pathname + "&" + location.search.substr(location.search.indexOf("\?")+1));
</script>
<noscript>
<meta http-equiv="refresh" content="0;URL=http://bjdnserror2.wo.com.cn:8080">
</noscript>
<head>
<title>Redirect</title>
</head>
<body bgcolor="white" text="black">
</body>
</html>
这是使用 HTTPFox 捕获的:
上述情况发生在对 adsupport.renren.com 的回复中,我最终被重定向到bjdnserror2.wo.com.cn。
与 XSS 劫持不同,恶意代码来自另一个域并且可以很容易地被浏览器伪装,这些代码来自中断正常请求/响应的拦截,它们只显示在您正在访问的同一域下。我想出的解决方案是停止我的 Firefox 跟随脚本倾向于将我重定向到 <*.wo.com.cn>。但这似乎没有被任何附加组件实现。现有的附加组件(NoScript、脚本管理器)可能会简单地停止所有 JavaScript 或对window.location
. 但是他们会破坏正常的用户体验。