Hoje recebemos um email informando sobre um problema de segurança no Google Website Optimizer. Segue a descrição do problema e sua solução para quem já utiliza este serviço:
“Prezado usuário do Otimizador de website,
Estamos escrevendo para informá-lo sobre um possível problema com o Otimizador de website. Ao explorar a vulnerabilidade no script de controle do Otimizador de website, um invasor pode executar um código malicioso em seu site usando um ataque Cross-Site Scripting (XSS). Esse ataque só pode acontecer em um website ou navegador que já tenha sido comprometido por um ataque diferente. Enquanto a probabilidade imediata deste ataque é baixa, recomendamos que você tome providências para proteger seu site.
Reparamos o bug e todas as experiências novas não estão suscetíveis. No entanto, quaisquer experiência que você esteja fazendo precisa ser atualizada para que o bug seja reparado em seu site. Além disso, se você tiver algum script do Otimizador de website de experiências pausadas ou interrompidas que foram criadas antes do dia 3 de dezembro de 2010, será necessário remover ou também atualizar esse código.
Há duas maneiras de atualizar seu código. Você pode interromper as experiências atuais, remover os scripts antigos e criar uma experiência nova ou atualizar o código de seu site diretamente. É altamente recomendável criar uma nova experiência, uma vez que se trata do método mais simples.
Como criar uma nova experiência
- Interrompa todas as experiências atualmente em execução no Otimizador de website
- Remova todos os scripts do Otimizador de website de seu site
- Crie uma nova experiência normalmente. As novas experiências não são vulneráveis.
Como atualizar diretamente o Script de controle do Otimizador de website
- Localize o script de controle em seu site. Ele terá esta aparência:
Script de controle de teste 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<_x0030__x003f_c.length:j_x0029__x007d__x007d__x007d_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)):'')+
'" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');</script>
<!-- End of Google Website Optimizer Control Script -->
Script de controle de teste multivariável
<!-- 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)):'')+
'" charset="utf-8"></sc'+'ript>')})();
</script>
<!-- End of Google Website Optimizer Control Script -->
- Localize o seguinte trecho no script de controle:
return c.substring(... - Altere a linha a seguir conforme mostrado:
ANTES:return c.substring(i+n.length+1,j<0?c.length:j)
CORRIGIDO:returnescape(c.substring(i+n.length+1,j<0?c.length:j))
Não se esqueça de incluir o parêntese final “)”
Script de controle de teste A/B corrigido
<!-- 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)):'')+
'" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');
</script>
<!-- End of Google Website Optimizer Control Script -->
Script de controle de teste multivariável corrigido
<!-- 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)):'')+
'" charset="utf-8"></sc'+'ript>')})();
</script>
<!-- End of Google Website Optimizer Control Script -->
A linha k=XXXXXXXXX nos exemplos de script de controle acima é um marcador de posição.
Sua experiência continuará normalmente depois que você fizer essa atualização. Não é necessário pausar ou reiniciar a experiência.
Temos o compromisso de manter o Otimizador de website seguro, e sentimos muito por esse problema. Continuaremos trabalhando muito para evitar vulnerabilidades futuras.
Atenciosamente,
Trevor
Equipe do Otimizador de website do Google”
O Google Website Optimizer é um serviço gratuito para testes A/B e Multivariável, uma boa solução para que sua empresa possa melhorar as conversões do seu site, conforme já mostrado no nosso post http://www.mundowa.com.br/blog/teste-ab-e-multivariavel/
Até o próximo post!







Foi noticiado no 




Entender as métricas básicas e suas definições dão uma perspectiva diferente para analisá-las.
Web Analytics: Uma Visão Brasileira