網站最佳化工具是Google旗下的網站分析工具。可協助網站經營者改善網站效能、配置,分析網站來獲得最佳報酬率的工具。透過此工具來測試網站內容的不同版本,可以來判定哪個網站配置最能吸引使用者。但是昨天收到一封信,關於Google網站最佳化工具發現到某個安全性問題,可能讓駭客攻擊並且執行惡意的程式碼,不過這個問題已經解決了,網站經營者也只需要更新控制指令碼就可以繼續分析網站!
來自網站最佳化工具官方的通知:
「Google 網站最佳化工具」使用者您好: 在此通知您,「Google 網站最佳化工具」可能存在某個安全性問題。駭客只要利用「Google 網站最佳化工具」指令碼的漏洞,或許就能進行跨網站指令碼 (XSS) 攻擊,在您的網站上執行惡意程式碼。網站或瀏覽器必須曾經遭受過其他攻擊入侵,駭客才能進行 XSS 攻擊。雖然立即受到這種攻擊的可能性不高,我們還是籲請您採取行動保護自己的網站。 我們已修正這個問題,所有新的實驗不再容易受到影響。不過,您目前還在執行的所有實驗都必須更新,以修正您網站上的這個問題。另外,如果您已暫停或停止的實驗是在 2010 年 12 月 3 日前建立的,而且當中使用了「Google 網站最佳化工具」指令碼,那麼也必須移除或更新該程式碼。 更新程式碼的方式有兩種,您可以停止目前的實驗,然後移除舊有程式碼並新建實驗,也可以直接在網站上更新程式碼。我們極力建議您新建實驗,因為這個方法比較簡單。 新建實驗 - 停止所有目前還在執行的「Google 網站最佳化工具」實驗。
- 從網站中移除所有「Google 網站最佳化工具」程式碼。
- 照常新建實驗,這些新的實驗不易遭受破壞。
直接更新「Google 網站最佳化工具」控制指令碼
- 找出您網站上的控制指令碼,它看起來像這樣:
A/B 測試控制指令碼
<!-- Google Website Optimizer Control 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 -->
Multivariate Test Control Script
<!-- Google Website Optimizer Control 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 -->
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 -->
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 網站最佳化工具小組 |
沒有留言 :
張貼留言