«Шутки в сторону», как сказал король Дезмонд, когда посреди пиршества гости неожиданно принялись синеть и помирать.
(с)Анджей Сапковский, «Ведьмак»
Да, именно сегодня я решил представить Вашему вниманию первую версию программы по проверке архивов с шаблонами WordPress на предмет наличия нежелательных ссылок, зашифрованных участков текста и других вещей в php-коде темы WordPress, грозящих нашему блогу как минимум долгих мучений при раскрутке.
Вначале о том, что может программа в принципе. Программа проводит проверку файлов в архиве по чеырем параметрам:
- Кодировка файла — если кодировка отличается от utf8, то шаблон считается потенциально опасным для использования
- Ссылки на сторонние ресурсы в файлах темы. Здесь, думаю всё ясно — нашли ссылку, пометили тему как опасную
- Зашифрованные участки кода — если найден такой участок, то тема помечается как потенциально опасная
- Наличие в файлах вызовов php-функции eval — может нести в себе довольно серьёзную опасность для пользователей блога.
Теперь, непосредственно по работе с самой программой. Итак, запускаем программу, выбираем zip-архив с шаблоном WordPress и жмем кнопку «Проверить»:
В списке проверенных файлов красным выделяются файлы в которых найдены нежелательные ссылки, закодированные участки и вызовы eval. Желтым — файлы с измененной кодировкой. При этом если в файл одновременно и содержит нежелательные элементы и у него кодировка отлична от utf8 — он выделяется красным.
Вполне вероятно, что в программа может найти в шаблоне ссылку, например, на ресурс wordpress.org и отметит такую тему нежелательной и потенциально опасной. Чтобы избежать подобных ситуаций в WP Checker предусмотрена настройка ссылок-исключений, т.е. тех адресов сайтов, которые будут пропускаться при проверке.
Чтобы настроить ссылки-исключения необходимо выбрать в главном меню WP Checker «Настройка»—«Ссылки-исключения»
По умолчанию в программе содержаться всего четыре ссылки. Сколько исключений будет у Вас — только Вам решать. Удалить ссылку-исключение можно двойным кликом по ней в списке.
Теперь вернемся к главному окну программы. В списке найденных ошибок содержится следующая информация:
- Количество измененных файлов
- Количество найденных нежелательных ссылок
- Количество закодированных участков в файлах
Для того, чтобы увидеть подробное описание оибки, достаточно сделать двойной клик по ней в списке:
Как видно из рисунка, при выборе в списке ошибки, строка, содержащая ошибку выделяется снизу в редакторе. В открывшемся окне с подробной информацией по ошибке в зависимости от её типа возможно получить следующую информацию:
- При обнаружение закодированного участка (base64) — возможна расшифровка закодированных строк. При этом расшифровке поддаются строки без сжатия. К сожалению стандарты сжатия в php и delphi отличаются (различаются версии стандартов шифрования), поэтому пока сжатые строки не расшифровываются.
- При обнаружении нежелательной ссылки — возможно отследить каким образом ссылка попадает на страницы блога. Рассматриваются два варианта — через вызов php-функции и простая вставка ссылки в файл. В первом случае (если ссылка вставляется посредствам вызова php-функции) WP Checker отслеживает вызовы этой функции во всех файлах шаблона
- Что касается eval, то в данном случае WP Checker использует следующий алгоритм: с помощью регулярного выражения определяется какая строка передается в фуекцию. Если строка содержит base64_decode, то отметка о наличии eval не устанавливается, а указывается только закодированный в base64 участок, иначе — запоминается строка, передаваемая в eval.
Для иллюстрации, посмотрим, как выглядит окно с подробной информацией по нежелательным ссылкам:
На основании представленной информации, Вы можете без лишних затруднений найти вызовы php-функции и удалить их из шаблона.
Надеюсь, что применения WP Checker поможет Вам избежать неприятных ситуаций при установке понравившейся темы WordPress на свой блог.
Скачать WP Checker можно здесь.
Да…
Мысли как-то в схожем направлении у нас работают.
Я вот сейчас пытаюсь сделать программу для автоматизации некоторых вещей в Joomla. В контексте DelphiFeeds :)
В случае положительного исхода — тоже покажу.
Так если Joomla поддерживает работу с XML-RPC, то полагаю проблем с реализацией быть не должно никаких. Только парсер толковый написать или найти. Если, что — всегда к вашим услугам :) Для DelphiFeeds.ru готов поучаствовать в разработке
А зачем вообще проверять, ну в смысле главное контент уник, а шаблон уже дело второе, или как?
С тысячами ссылок на ГС в вашем шаблоне блога — уник не спасет. тИЦ и PR будете наращивать в год по 1
Скажите пожалуйста, обязательно ли использование программы только на движке вордпреса?
Можно ли с помощью нее проверять архивы с другими движками (дле, какие нибудь социалки, фотогалереи.)?
И можно ли ее использовать просто для каких нибудь скриптов? То есть вот допустим я скачал скрипт какой нибудь, и смог бы проверить его с помощью этой проги.
При поптыке проверить архив с темой, выдается Access violation, никто не подскажет возможных причин?
А поподробнее кто нибудь может объяснить. Заранее спс.
Скачал wp checker … Запустил..С жесткого диска взял заархивированный шаблон..Вставил в окошко «файл» нажал на планочку проверить и ничего не произошло.Что я не так делаю?
Извините неправильно почтовый адрес написал в начале..Вы видимо все в отпуске
Александр, Вы правы — я пока ещё в отпуске :) Дайте, пожалуйста, ссылочку на тот файл, который вы хотели проверить. Посмотрю, что произошло — может быть дело в программе, тогда придётся её немного доработать
<<<<<<<>>>>>>>>>>>>
У меня блин тоже самое,, а прога так нужна,, спасайте уже ребята
Придётся немного подождать. Прога писалась в Lazarus под Linux’ом. А сейчас я под Win7 — надо кое-что переписать полностью.
У меня XP SP3 такая же петрушка-выдает ошибку. Очень жаль. Очень неплохо было бы попробовать некоторые темы.
Добротный пост
Не работает
говорит access violation :(
Программа не работает!
Не рекомендуем использовать десктопные антивирусы для проверки шаблонов. В большинстве случаев они не обнаружат ничего подозрительного, так как обнаружение вредоносного кода в php скриптах — не их профиль.