5

我最近开始使用 3G 移动宽带 USB 棒。它来自英国移动通信公司 T-Mobile。一切似乎都很好,直到我尝试通过将其上传到我的实时服务器来测试我一直在本地开发的站点。

当我查看我的实时站点的代码时,我可以看到两件奇怪的事情正在发生:

  1. 一个脚本被插入到我的文档的头部:<script src="http://1.2.3.8/bmi-int-js/bmi.js" language="javascript"></script>

    我可以在我的代码中添加一些东西来防止脚本插入吗?

  2. 通常我的 css 包含在我的页面中,例如:

    <link href="style.css" rel="stylesheet" type="text/css" />

但是现在当我查看源代码时,css 已直接插入到脚本标记之间的页面中,例如:

<style type="text/css" style="display:none">div.calendar{color:#000;font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;-moz-box-shadow:0px.....

这也发生在一些 javascript 文件中。

到底是怎么回事?

4

4 回答 4

11

您看到的修改实际上并未出现在您网站的标记中。我已经访问过您的网站并且可以验证这一点。正在发生的事情是,T-Mobile 正试图“优化”使用您的无线棒访问的任何站点,但做得很糟糕。这个人报告了同样的问题:

事实证明,T-Mobile(和 Vodafone UK)认为在我访问的每个页面中插入他们自己的 Javascript 是合适的,这会通过代理传输所有图像以降低其质量。但是,由于换行符终止不正确,Firefox 或 Opera 无法结合任何 XHTML 1.1 或 XML 文档解析此脚本。

head在我看来,这是你的前几行:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>The Smile Zone | Home</title> 
<link rel="stylesheet" type="text/css" href="manager/templates/smiletemplate/css/style.css" /> 
<link type="text/css" rel="stylesheet" href="http://www.jotform.com/css/styles/form.css?v3"/> 
<link href="manager/templates/smiletemplate/css/calendarview.css" rel="stylesheet" type="text/css" /> 

我不知道您是否可以覆盖无线服务的这种行为,但您可以放心,您网站的其他访问者不会遇到同样的问题。

于 2010-09-26T20:18:41.063 回答
4

在 T-mobile 中,它被称为“移动宽带加速器”。您可以访问:http ://accelerator.t-mobile.co.uk或http://1.2.3.50/来禁用/配置它。另请查看停止移动网络代理注入 JavaScript

于 2011-10-13T19:01:24.910 回答
1

如果您使用 SSL 加载网站或使用 VPN(或 Tor)浏览,那么您的 ISP 将无法看到数据来修改它。不过,这不一定对您的用户有帮助。

于 2010-09-26T20:22:52.613 回答
0

我可以在我的代码中添加一些东西来防止脚本插入吗?

如果您为您的网站设置Content-Security-Policy HTTP 标头,您将能够阻止注入的脚本在现代浏览器中加载。

请参阅“ html5rocks:内容安全策略简介”开始。但是,使用这样的策略,您必须小心不要拒绝您自己的网站所需的资源,例如 Google 字体、CDN 等,而这可能会很耗时。

例如,以下 HTTP 标头将仅允许现代浏览器从您网站自己的域中获取资源,从而防止获取外部 BMI 脚本:

Content-Security-Policy: default-src 'self';
于 2014-09-04T16:06:23.387 回答