Google nos acaba de informar de un posible problema de seguridad con Google Website Optimizer. Parece ser que se aprovecha de una vulnerabilidad en la secuencia de comandos de control del Optimizador de sitios web, un atacante podría ejecutar código malicioso en su sitio mediante un ataque de secuencias de comandos entre sitios (XSS). Este ataque solo se puede llevar a cabo si un sitio web o un navegador ya está en peligro debido a otro ataque. Aunque la probabilidad inmediata de este ataque es baja, recomiendan adoptar medidas para proteger tu sitio.

Los experimentos nuevos no son vulnerables, el error esta corregido pero se deben actualizar los experimentos que se están ejecutando actualmente y los que se crearon antes del día 3 de diciembre.

Hay dos formas de actualizar el código. Puedes detener los experimentos actuales, suprimir las secuencias de comandos anteriores y crear un experimento nuevo, o bien puedes actualizar el código en el sitio directamente. Se recomienda crear un experimento nuevo, ya que es el método más simple.

Creación de un experimento nuevo

  • Detén los experimentos del Optimizador de sitios web que se estén ejecutando actualmente.
  • Suprime todas las secuencias de comandos del Optimizador de sitios web del sitio.
  • Crea un experimento nuevo de la forma habitual.

Actualización directa de la secuencia de comandos de control del Optimizador de sitios web

  • Busca la secuencia de comandos de control en su sitio. Tiene el siguiente aspecto:

– Secuencia de comandos de control de prueba 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)):”)+
‘” charset=”utf-8″></sc’+’ript>’)})();
</script><script>utmx(“url”,’A/B’);</script>
<!– End of Google Website Optimizer Control Script –>

– Secuencia de comandos de control de prueba multivariable

<!– 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 –>

  • Busca lo siguiente en la secuencia de comandos de control: return c.substring(…
  • Modifiqua la siguiente línea tal como se muestra a continuación:
    ANTES: return c.substring(i+n.length+1,j<0?c.length:j)
    CORREGIDO: return escape(c.substring(i+n.length+1,j<0?c.length:j))
    Asegúrese de incluir el paréntesis de cierre final “)”

– Secuencia de comandos de control A/B corregida

<!– 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 –>

– Secuencia de comandos de control multivariable corregida

<!– 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 –>

El experimento seguirá funcionando normalmente después de haber realizado esta actualización. No es necesario detenerlo o reiniciarlo.

Publicado por Overalia

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *