Google 网站优化工具中的安全问题


尊敬的 Google 网站优化工具用户,您好!

谨在此通知您,Google 网站优化工具存在一项潜在安全问题。通过利用 Google 网站优化工具控制脚本的一个漏洞,攻击者可能会使用跨站脚本(Cross-Site Scripting,XSS)攻击的方式在您的网站上执行恶意代码。不过,只有在网站或浏览器已经受到其他独立攻击的威胁时,跨站脚本攻击才会发生。尽管直接遭受此类攻击的可能性不大,不过我们强烈建议您采取行动保护您的网站。

我们已经修复了这一错误,所有新实验都不会受到此类不良影响。不过,您需要更新您当前运行的所有实验,以修复您网站上的这一错误。另外,如果您已暂停或停止的实验是创建于 2010 年 12 月 3 日之前,您也需要删除或更新与其相关的所有 Google 网站优化工具脚本代码。

更新代码的方法有两种。您可以停止当前的实验,删除旧脚本,然后创建新实验;也可以直接在您的网站上更新代码。您最好创建新实验,因为这种方法比较简单。

创建新实验

    • 停止当前运行的所有 Google 网站优化工具实验
    • 从您的网站中删除所有 Google 网站优化工具脚本
    • 按照常规操作创建新实验,新实验不易受到攻击

直接更新 Google 网站优化工具控制脚本

    • 在网站上找到控制脚本。此脚本如下所示:

 

A/B 测试控制脚本
<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){}
(function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');</script>
<!-- End of Google Website Optimizer Control Script -->

 

多版本测试控制脚本
<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){}
(function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script>
<!-- End of Google Website Optimizer Control Script -->
    • 在控制脚本中找到 return c.substring(...
    • 按照如下所示修改相应行:
      修改前: return c.substring(i+n.length+1,j<0?c.length:j)
      修改后: return escape(c.substring(i+n.length+1,j<0?c.length:j))
      请不要忘记末尾的右圆括号 ")"

 

修复的 A/B 控制脚本
<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){} (function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){ if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);
return escape(c.substring(i+n.length+1,j<0?c.length:j))}}}
var x=f('__utmx'),xx=f('__utmxx'),h=l.hash; d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');
</script>
<!-- End of Google Website Optimizer Control Script -->

修复的多版本控制脚本
<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){}
(function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);
return escape(c.substring(i+n.length+1,j<0?c.length:j))}}}
var x=f('__utmx'),xx=f('__utmxx'),h=l.hash; d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script>
<!-- End of Google Website Optimizer Control Script -->

请注意,以上控制脚本示例中的 k=XXXXXXXXX 行是占位符。

在进行上述更新后,您的实验将继续照常运行,您无需暂停或重新开始实验。

我们始终致力于保证 Google 网站优化工具的安全。对于这一安全问题,我们深表歉意。我们将一如既往地努力工作,防止日后再次出现漏洞。


此致
Trevor
Google 网站优化工具小组


发表评论
共有条评论
昵 称: 密 码: 游客发言不需要密码.
验证码: 匿名发表
内 容:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.