Google 網站優化工具中的安全問題
作者: 日期:2010-12-08 09:44:39 瀏覽數:
尊敬的 Google 網站優化工具用戶,您好!
謹在此通知您,Google 網站優化工具存在一項潛在安全問題。通過利用 Google 網站優化工具控制腳本的一個漏洞,攻擊者可能會使用跨站腳本(Cross-Site Scripting,XSS)攻擊的方式在您的網站上執行惡意代碼。不過,只有在網站或瀏覽器已經受到其他獨立攻擊的威脅時,跨站腳本攻擊才會發生。盡管直接遭受此類攻擊的可能性不大,不過我們強烈建議您采取行動保護您的網站。
我們已經修復了這一錯誤,所有新實驗都不會受到此類不良影響。不過,您需要更新您當前運行的所有實驗,以修復您網站上的這一錯誤。另外,如果您已暫?;蛲V沟膶嶒炇莿摻ㄓ? 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 網站優化工具小組