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 網站優化工具小組


發表評論
共有條評論
昵 稱: 密 碼: 游客發言不需要密碼.
驗證碼: 匿名發表
內 容:
雖然發表評論不用注冊,但是為了保護您的發言權,建議您注冊帳號.

倾国妲己闯关