Дополнительные комментарии к проблеме индексации непубличных страниц Яндексом

Владимир Тупоршин — Июль 26, 2011

Мы опубликовали дополнительные комментарии о проблеме в нашем блоге на Хабре: о том, что это за страницы, откуда мог узнать о них Яндекс, о масштабности проблемы и возможных решениях.

http://habrahabr.ru/company/webasyst/blog/124968/

UPD: А ведь уже проблема прогрессирует — вот и железнодорожные билеты проиндексированы (к Shop-Script это уже отношения не имеет).

Индексация страниц с приватной информацией в магазинах на основе WebAsyst Shop-Script («Мегафон №2»)

Владимир Тупоршин — Июль 25, 2011

В СМИ появилась новость о том, что Яндекс проиндексировал множество страниц с приватными данными пользователей интернет-магазинов аналогично тому, как недавно были проиндексированы СМС-сообщения, отправляемые с сайта Мегафона:
http://www.lenta.ru/news/2011/07/25/eshops/
http://habrahabr.ru/blogs/infosecurity/124898/

Оказалось, что новость касается интернет-магазинов, работающих на основе WebAsyst Shop-Script. Естественно, для нас это стало очень большой неожиданностью, и наше расследование показало следующее: проблема актуальная для магазинов, на страницах которых установлен код Яндекс.Метрики. Далее детально опишу, в чем причина проблемы и как ее разрешить.

Как так получилось?

В интернет-магазинах, работающих на основе WebAsyst Shop-Script, пользователи могут оформлять покупку без обязательной регистрации в магазине, то есть без создания аккаунта с паролем. После оформления заказа пользователю отправляется прямая ссылка на страницу с информацией о заказе и его статусе. Эта ссылка отправляется покупателю на почтовый ящик (и более нигде недоступна, в том числе и администратору магазина). После перехода по ссылке пользователю показывается страница с информацией о совершенному заказе — именно такие страницы и проиндексировал Яндекс. Так как пользователь не зарегистрирован, то у него не запрашиваются логин и пароль (их просто нет), а сразу отображается информация о совершенном заказе. Авторизация пользователя происходит по ключу hash, который фигурирует в ссылке из письма. Получилось так, что пользователь переходил по ссылке, а установленный код Яндекс.Метрики «запоминал» посещенный пользователем адрес и позже включал этот адрес в базу индексируемых адресов. Индексировались только те страницы, по которым пользователи совершали переходы. Если пользователя по ссылке не переходил, то «его страница» не индексировалась.

Ситуация сложилась неоднозначная. С одной стороны мы, разработчики Shop-Script, не предусмотрели того, что приватный адрес может быть проиндексирован поисковиком «сам по себе», считая, что раз адрес отправляется клиенту индивидуально, то в открытых источниках он не будет опубликован и, следовательно, не будет проиндексирован. С другой стороны, поведение сервиса Яндекс.Метрики — добавлять адрес любой посещенной пользователем страницы сайта сразу в основной индекс — мягко говоря, спорно.

Проблема не в отсутствии файла robots.txt (в недавнем случае с Мегафоном именно это было названо основной технической проблемой), а в отправке пользователям по электронной почте ссылок, ведущих на страницы, содержащие их частную информацию. Например, ссылок на подтверждение регистрации — наиболее распространенный случай. Когда такие ссылки сопровождаются авторизацией пользователя по паролю, проблем не возникает, потому что сначала пользователю необходимо все же войти в аккаунт и уже потом видеть свою информацию. В нашем случае страница показывалась сразу, потому что пароля у пользователя не было — ведь заказ оформлялся без регистрации. Наличие robots.txt и каких бы то ни было инструкцией в нем в данном случае не является решением, так как в ссылке может перейти бот не только поисковика, но и любой другой.

Практика доступа к страницам с некоторой частной информацией по прямой ссылке применяется на различных сайтах и сервисах повсеместно, далеко не только в Shop-Script. Например, на сайтах с трассировкой почтовых отправлений, в ссылках, отправляемых пользователю по почте, переход по которым автоматически авторизуют пользователя на сайте (так делает сервис Яндекса «Мой Круг», кстати), и т.д. Очевидно, что данная ситуация с движком Shop-Script была найдена в большей степени в связи с недавним конфликтом проиндексированных SMS-сообщений на сайте «Мегафона» — их случай просто обратил большое внимание на данную проблему. Вероятно, что далее подобные ситуации будут возникать вокруг многих сайтов, сервисов и CMS в интернете, которые работают с частной информацией клиента.

Итак, инструкции по разрешению проблемы для магазинов, попавших в такую ситуацию. Если нижеприведенных инструкций будет недостаточно, мы готовы оказать всяческую оперативную техническую помощь в ее исправлении. Обращайтесь в нашу службу технической поддержки по адресу support@webasyst.ru или по телефону 8 (800) 200-1993, для международных звонков: +7 (495) 663-73-25.

Как исправить?

Данная инструкция написана для интернет-магазинов на основе WebAsyst Shop-Script, на страницах которых установлен код Яндекс.Метрик.

1. Необходимо ввести дополнительную усиленную авторизацию пользователей на просмотр информации о заказе. Для этого либо обновите ваш WebAsyst до версии №304 с помощью WebAsyst Installer (встроенной системы обновлений), либо, если вы не хотите обновлять всю установку, обновите только измененные файлы файлами из этого архива shop-script-update-304-auth-enforced.zip. Файлы из архива необходимо загрузить в папку published/SC/html/scripts/ вашей установки магазина, соблюдая структуру папок внутри архива. Просто замените существующие файлы обновленными. Функционал скрипта эти файлы не изменят — только лишь добавят дополнительную авторизацию пользователя по фамилии (так как пароля в данном случае у пользователя нет).

Архив содержит обновленные файлы, которые при любом переходе по ссылкам вида index.php?order_status=…&orderID=…&hash=… (страницы, «переданные» Яндекс.Метриками общему индексу Яндекса) делает редирект на страницу, адрес которой не содержит уже никаких параметров, и на которой в качестве дополнительной меры авторизации у пользователя запрашивается его фамилия. Если пользователь вводит данные правильно, то только тогда ему показывается страница с информацией о заказе и историей его обработки. (Напомню, что пароля в данном контексте нет, так как пользователь не является зарегистрированным в магазине.)

Это касается только пользователей скриптов Shop-Script. Во всех установках интернет-магазинов на веб-сервисе WebAsyst (*.webasyst.net) мы уже внесли эти изменения.

2. Проверить наличие файла robots.txt в корневой папке вашего сайта. Пожалуйста, обратите внимание на рекомендации по составлению этого файла: http://www.webasyst.ru/support/help/robots-txt.html

Правила, которые необходимо добавить в файл:

Для ЧПУ:

Disallow: /order_status/
Disallow: /order_history/
Disallow: /*ukey=order_status
Disallow: /*ukey=order_history

Без ЧПУ:

Disallow: /*ukey=order_status
Disallow: /*ukey=order_history

Добавление таких правил позволит исключить страницы из будущей индексации магазина поисковиками.

Перечисленные две меры (рекомендуем выполнить обе) полностью закроют доступ к проиндексированной информации с ваших сайтов, однако не уберут данную информацию из кеша поисковиков. Мы уже обратились в Яндекс с просьбой содействия для решения проблемы и исключения всех проиндексированных страниц из результатов поиска.

Мы понимаем, что часть ответственности лежит на разработчиках Shop-Script, и стараемся реагировать на проблему максимально оперативно. Еще раз повторю, что мы готовы оказывать всяческую оперативную техническую помощь всем пострадавшим интернет-магазинам, работающим на основе WebAsyst Shop-Script. Если у вас есть какие-либо вопросы, незамедлительно обращайтесь в нашу службу поддержки по адресу support@webasyst.ru или по телефону 8 (800) 200-1993, для международных звонков: +7 (495) 663-73-25.

Если в вашем интернет-магазине вы используете Google Analytics, то описанная проблема для вас не актуальна.

В ближайшие дни мы выпустим дополнительное обновление Shop-Script, которое полностью и более основательно устранит описанную проблему.

UPD 26.07 13:40 МСК: Предложено обновленное решение проблемы — см. пункт №1 выше (обновление до версии №304 или замена отдельных скриптов файлами из архива).

UPD 26.07 17:20 МСК: Продолжение обсуждения сложившейся ситуации и дополнительные комментарии с нашей стороны: http://habrahabr.ru/company/webasyst/blog/124968/

UPD 26.07 18:30 МСК: Как я и говорил в тексте поста, проблема прогрессирует — вот и железнодорожные билеты проиндексированы (к Shop-Script это уже отношения не имеет). Я знал, что это только начало подобных проблем, но не думал, что проявляться это станет настолько быстро.

UPD 29.07: Мы связались с Яндексом по поводу удаления из общего индекса проиндексированных страниц с информацией о заказах пользователей магазинов. Насколько это было возможно, проиндексированные страницы были удалены из индекса. Однако, для некоторых магазинов проиндексированные страницы все же остались в индексе.

Проверить, есть ли для вашего магазина какие-либо страницы с информацией о заказах в кеше Яндекса, можно с помощью поискового запроса site:YOURDOMAIN.ru inurl:order_status hash

Если какие-то из страниц остались, воспользуйтесь инструмент Яндекса.Вебмастер http://webmaster.yandex.ru/delurl.xml

Интернет-магазин для «чайников»

Михаил Ушенин — Июль 5, 2011

Нас часто спрашивают, как открыть свой интернет-магазин. Чтобы помочь вам найти ответы на самые простые вопросы, мы хотим подробнее рассказать о том, как проще всего открыть интернет-магазин и какие для этого могут потребоваться затраты и навыки. Это краткое руководство для тех, кому пока многое непонятно в интернет-торговле, и кто не знает, с чего начать.

В этой статье мы расскажем о простом и недорогом способе создания интернет-магазина — с помощью веб-сервисов WebAsyst. Для этого потребуется минимум денежных вложений и почти никаких технических знаний.

1. Чем торговать

Сначала решите, чем вы будете торговать. Вам помогут наши советы по выбору продукции для интернет-магазина.

2. Создание магазина

Интернет-магазин — это сайт, работой которого управляет специальная программа (Shop‑Script). Программу можно купить и установить на специальный веб-сервер либо получить во временное пользование (такой вариант использования Shop-Script называется веб‑сервисом).

После ознакомления с Shop-Script в виде веб-сервиса вы сможете в любое время выкупить программу в личное пользование. Приобретенный Shop‑Script нужно устанавливать на сервер хостинговой компании, например: WebAsyst, Русоникс, Мастерхост, GoDaddy, iWeb и др. Вместо оплаты веб-сервиса в этом случае потребуется ежемесячная оплата услуг хостинг-провайдера.

Веб-сервис Shop‑Script бывает бесплатным и платным. Плата нужна, только если вы собираетесь сразу продавать много (более 100) товаров или принимать много (более 25) заказов каждый месяц. Можно начать использовать бесплатный веб-сервис, а потом перейти на платный тариф.

По нашему опыту, около 95% начинающих интернет-магазинов достаточно самого дешёвого тарифа за 249 руб./мес. Кстати, даже такой тариф позволяет зарегистрировать собственное доменное имя, как описано ниже.

При использовании веб-сервиса Shop-Script уже установлен на серверы WebAsyst, которые специально настроены для правильной работы интернет-магазина. Чтобы воспользоваться веб-сервисом, нужно зарегистрироваться по адресу http://www.webasyst.ru/signup/?app=shop (регистрация бесплатная).

Создание интернет-магазина с помощью веб-сервисов подробно показано в видео-ролике:

3. Каталог товаров

Создайте каталог товаров и внесите в него всю необходимую информацию о продукции: названия, цены, описания, фотографии и т. д. Добавлять товары просто: нажмите на кнопку «Добавить продукт», введите название, описание, цену, укажите другие свойства товара и нажмите «Сохранить».

4. Оплата и доставка

Организуйте прием оплаты и доставку заказов. Для этого может понадобиться открытие счёта в банке, заключение договоров с платежными системами и курьерскими компаниями. Полезную информацию вы найдёте в базе знаний WebAsyst. Настройте способы доставки и оплаты в своём интернет-магазине — эти способы будут предложены вашим покупателям при совершении покупки.

5. Доменное имя

У интернет-магазина, созданного с помощью бесплатного веб-сервиса Shop-Script, довольно длинный адрес: nazvanie.webasyst.net/shop/. Если вы захотите сделать адрес вашего магазина более коротким и «красивым» (например, nazvanie.ru), достаточно перейти на любой платный тариф, затем придумать и зарегистрировать доменное имя с помощью веб-сервисов WebAsyst. Доменное имя регистрируется и продлевается на 1 год, это стоит 599 руб.

6. Реклама магазина

Для того чтобы в ваш интернет-магазин пришли покупатели, необходима реклама. Реклама может быть как платной, так и бесплатной:

  • регистрация в каталогах поисковых систем (бесплатно);
  • публикация ссылок на ваш магазин на других сайтах (бесплатно либо платно);
  • оптимизация интернет-магазина для поисковых систем (бесплатно либо платно);
  • оффлайн-реклама — распространение информации не через интернет, например: печать, ТВ, радио, личное общение с потенциальными покупателями.

Несколько советов по начальной поисковой индексации интернет-магазина вы найдёте в базе знаний WebAsyst.

Как и в других сферах торговли, реклама в интернете — это часто одна из самых значительных  статей расхода. Реклама и поисковое продвижение интернет-магазина также потребуют от вас значительно больше времени, чем само создание магазина и наполнение каталога. Будьте готовы к тому, что конкуренты часто тратят немалые средства, чтобы их сайты оказались на первых строках в результатах поиска Яндекс и Google. Чтобы обойти их, от вас могут потребоваться аналогичные усилия и финансовые затраты (хотя это и не всегда обязательно).

7. Поддержка и развитие

Открыв свой интернет-магазин, не останавливайтесь на достигнутом! Постоянно изучайте отзывы своих посетителей и посещайте сайты популярных интернет-магазинов, чтобы сделать ваш магазин максимально удобным, информативным и привлекательным для покупателей. Кроме элементарного удобства для ваших клиентов, адекватно представленная на сайте информация часто более корректно индексируется поисковыми системами — это приводит к увеличению количества посетителей и новых покупателей, а значит, вашего дохода.