Получил письмо под заголовком "Проблема безопасности в Оптимизаторе веб-сайтов"Ниже приведу весь текст письма в цитате.
Уважаемый пользователь Оптимизатора веб-сайтов!
Сообщаем о потенциальной проблеме безопасности в Оптимизаторе веб-сайтов. Используя уязвимость в скрипте управления Оптимизатора веб-сайтов, злоумышленник может запустить на Вашем сайте вредоносный код путем атаки XSS (межсайтового скриптинга). Такую атаку можно провести, только если веб-сайт или браузер уже был взломан до этого. Хотя вероятность такой атаки в данный момент невелика, настоятельно рекомендуем Вам принять меры по защите своего сайта.
Мы уже устранили эту уязвимость, и новые эксперименты не подвергаются риску. Однако все текущие эксперименты необходимо обновить, чтобы устранить уязвимость на сайте. Кроме того, если какие-либо скрипты Оптимизатора веб-сайтов из приостановленных или прекращенных экспериментов были созданы до 3 декабря 2010 г., Вам также нужно будет удалить или обновить этот код.
Обновить код можно двумя способами. Первый: остановить текущие эксперименты, удалить старые скрипты и создать новый эксперимент. Второй: обновить код непосредственно на веб-сайте. Мы настоятельно рекомендуем Вам создать новый эксперимент, так как этот метод гораздо проще.
Создание нового эксперимента
1. Остановите все текущие эксперименты Оптимизатора веб-сайтов.
2. Удалите с сайта все скрипты Оптимизатора веб-сайтов.
3. Создайте новый эксперимент обычным способом. Новые эксперименты не подвергаются риску атаки.
Обновление скрипта управления Оптимизатора веб-сайтов непосредственно на веб-сайте
1. Найдите на своем сайте скрипт управления. Он выглядит примерно так:
Скрипт управления для тестирования А/Б
<!-- 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©{var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j 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©{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 -->
1. Найдите следующий код в скрипте управления: return c.substring(...
2. Измените эту строку следующим образом:
СТАРЫЙ КОД: return c.substring(i+n.length+1,j
ИСПРАВЛЕННЫЙ КОД: return escape(c.substring(i+n.length+1,j)
Не забудьте поставить в конце закрывающую кавычку: ")".
Исправленный скрипт управления для тестирования А/Б
<!-- 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©{var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);
return escape(c.substring(i+n.length+1,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©{var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);
return escape(c.substring(i+n.length+1,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 или Вашем аккаунте.
© Google, 2010. Google является товарным знаком компании Google Inc. Все другие названия компаний и продуктов могут являться товарными знаками соответствующих компаний.
Чё это за ё-маё такое?
Под ночь уже мозг не охота напрягать сильно.
Кто-нибудь подобное получал? Письмо пришло с мыла websiteoptimizer-noreply@google.com