среда, 7 октября 2009 г.

Возвращаем в индекс страницы virtuemart

Я не поклонник joomla. Эта неприязнь идет с давних времен, когда на ней бегал мой сайт. Все было хорошо, пока сайт не взломали. Через уязвимость в одной из компонент (к сожалению не помню в какой), на сайт внедрили исполняемый файл. Этот файл остался мне на память - очень полезная тулза, выдает всю информацию о сервере, работает как файл-менеджер, позволяет исполнять серверные команды.
При этом мне говорили - сама джумла безопасна, взлом происходит через компоненты сторонних разработчиков, но для меня это не аргумент. Сама система управления контентом должна быть ответственна за безопасность, и предоставлять разработчикам компонентов безопасную среду, в которой они не должны задумываться об уязвимостях кода.
На днях, джумла преподнесла еще один сюрприз, точнее не сама joomla, а компонент интернет-магазина virtuemart. Проблема заключалась в том, что страницы интернет-магазина не индексируются яндексом. Анализ проблемы показал, что виной всему 301-й редирект.
Оказывается, данный компонент проверяет, включены ли cookies в браузере посетителя. Причем метод проверки основывается на следующем алгоритме:
1. ставим cookie
2. редиректим на проверочный урл
3. проверяем cookie
4. удаляем cookie
Для поисковой системы, которая пытается проиндексировать данную страницу, она выглядит, как простой редирект. В моем случае редирект происходил совсем на другую страницу, поэтому запрошенных страниц в индексе не было.
Итак, лекарство.
Находим файл /administrator/components/com_virtuemart/classes/ps_session.php
Находим function doCookieCheck()
Коментим код внутри функции.
Проверка cookies будет отключена, и посетитель, браузер которого их не поддерживает, не будет проинформирован, однако ничто не сможет помешать поисковым системам индексировать странички вашего магазина.

Комментариев нет: