Как скрыть, что используется wordpress

38 votes, 4.55 avg. rating (90% score)

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

И вот была поставлена задача для одного сайта первоначально спрятать, что это вордпресс, а потом и выдать его за другую cms. Про то, как сделать из одной cms другую (по внешним признакам) я могу отдельно пост накатать, если кому интересно будет. Тут расскажу как убрать признаки вордпресса.

Сам поциэнт http://battmart.ru/, еще не готов в плане диза и наполнения, но попалить цмску на нем уже не получится. Определяется как битрикс, на самом деле вп обычный.

Итак, поехали.

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

Read On…

38 votes, 4.55 avg. rating (90% score)

Таблица признаков CMS

5 votes, 4.20 avg. rating (83% score)

Стало интересно, как вообще сервисы и плагины типа rds определяют систему сайта. Немного понаблюдав за rds и wappalizer, я сделал вывод, что палят они систему исключительно по коду страницы, без учета путей, записей в роботсах и прочих метках.

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

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

Для начала нужно было взять где-то таблицу признаков. CMS вообще детектится не только по коду, адрес админки редко когда можно поменять, но я что-то ниразу не видел в логах, чтобы яндекс ломился на wp-admin или wp-includes. Поэтому был сделан вывод, что анализ cms проводится все-таки на основе кода страницы, а также возможно на основе заголовков, содержимого robots и урла.

Признаки я позаимствовал у плагинов для firefox’a — rds bar и wappalizer и свел их в одну таблицу. Там были не только цмски, но и всякие популярные либы, плееры и т.п,  я решил все выложить.

Признаки уже регэкспами, но водпресс форматирует кавычки, так что проверяйте предварительно.

Read On…

5 votes, 4.20 avg. rating (83% score)

Непонятки с блогом

2 votes, 3.00 avg. rating (66% score)

В последнее время с какого-то перепугу начинают публиковаться записи, которые были опубликованы года 4 назад. Я не в курсе, почему такие странные вещи происходят, постараюсь разобраться. Прощу прощения у своих читателей, что им приходится читать это )

2 votes, 3.00 avg. rating (66% score)

Автозапуск скриптов

5 votes, 3.60 avg. rating (73% score)

Появилась одна проблемка — после обновления сервера скрипты, которые раньше работали уверенно, начали вдруг умирать без видимых причин, выдавая напоследок содержательную фразу Killed.

После проверки все установок php, расхода памяти и т.п. проблема была обозначена как «а я хз почему» и были начаты поиски костыля.

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

while [ 1 ]
   do php /path/to/script.php
done;

Просто и понятно. Единственный минус — скрипт сам по себе уже не остановится ))

5 votes, 3.60 avg. rating (73% score)

Ошибка Invalid taxonomy при использовании wp_insert_term

4 votes, 4.00 avg. rating (79% score)

Ковыряю один интернет магазин на вордпрессе, на woocommerce. Так вот так, чтобы не перемешивались посты и товары, товарам поставили свою таксономию, отличную от простых постов. Категориям товаров соответственно тоже, чтобы не путались. И вот при импорте большого списка товаров и категорий в магазин, вываливается такая красота:

object(WP_Error)#273 (2) {
  ["errors"]=>
  array(1) {
    ["invalid_taxonomy"]=>
    array(1) {
      [0]=>
      string(16) "Invalid taxonomy"
    }
  }
  ["error_data"]=>
  array(0) {
  }
}

Смотрел сам код, там видимо когда постишь из админки, категории записываются в глобальные и дальше читаются из памяти (странное решение sic:) ). А когда просто инклюдишь нужные скрипты и используешь вызов wp_insert_term или wp_set_post_terms то вываливается ошибка. Как красиво решить не нашел, нашел как некрасиво.

global $wp_taxonomies;
$wp_taxonomies .= array('You_category');

И все сработало

4 votes, 4.00 avg. rating (79% score)

Проверка доступности путей на файловых системах UNIX

2 votes, 3.00 avg. rating (66% score)

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

Сегодня под вечер добрался до одного своего проекта, который уже весь до мелочей продуман, все схемы и базы готовы, дизайн нарисован, уже есть первые его клиенты, но самого сервиса нет. Лень, она такая, да.

Итак, решил поначалу его на локале писать, потому как идея простая как две копейки и потребности кодить ее на боевом сервере нету.

Врубаю дезмитол, создаю папочку в дефолтной апачевской дире /var/www, готовлюсь к процессу. И думаю, а нафигаж я буду на локальном диске хранить проект, когда можно сделать симлинку в папку дропбокса. Делаю я симлинку, пробую открыть по пути localhost/folder и получаю 403. Это меня не расстраивает, поскоку апач не всегда по умолчанию открывает симлинки, ведущие на локальную файловую систему.

Правлю конфиги самого апача и дефолтного сайта, перезапускаюсь, заново открываю страницу и вновь получаю 403. Логи ничего вразумительного не говорят, я слегка огорчаюсь.  Проверяю права, группы, доступность папки, все верно. Но 403 не сдается.

После долгого курения гугла наткнулся на интересную утилитку под названием namei. Входит по умолчанию в бубунту. Проверяю доступность файла и получаю корень проблемы на блюдечке -

root@alex-desktop:/var/www# namei -m ./minutka/index.html 
f: ./minutka/index.html
 drwxr-xr-x .
 lrwxrwxrwx minutka -> /home/alex/Dropbox/minutka/
   drwxr-xr-x /
   drwxr-xr-x home
   drwxr-xr-x alex
   drwx------ Dropbox
   drwxrwxr-x minutka
 -rwxrwxrwx index.html

Вот такая вот полезная утилитка. Век живи — век учись, ага ))

2 votes, 3.00 avg. rating (66% score)

Профилирование и отладка PHP скриптов

5 votes, 3.80 avg. rating (76% score)

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

Read On…

5 votes, 3.80 avg. rating (76% score)

Денормализация базы данных

6 votes, 2.00 avg. rating (45% score)

Не так давно писал цикл постов про нормальные формы. Сегодня хочу еще рассказать про обратную процедуру — денормализацию.

Что такое денормализация? Это намеренное внесение изменений в нормализованную схему бд, после которых она перестает соответствовать правилам НФ.

Для чего это делается? Основная цель — это увеличение производительности ценой увеличения избыточности, возможных коллизий, а также некоторым неудобством составления сложных выборок.  Read On…

6 votes, 2.00 avg. rating (45% score)

Дизайн интерфейсов онлайн

6 votes, 3.33 avg. rating (68% score)

Много раз бывает такая ситуация, когда нужно обговорить, как будет выглядеть будущий элемент дизайна, но через аську или скайп рассказывать что вот тут разместится вот это а там вон то совсем не айс. Гораздо удобнее накидать в редакторе наброски, отправить и согласовать их. Но только каждый раз что-то править, потом сохранять, потом отправлять совсем не удобно.
Есть такие сервисы, которые предоставляют возможность сделать тоже самое, но только совместно и онлайн.

Большинство из таких сервисов предоставяют бесплатный пробный доступ на несколько дней, но я искал полностью бесплатный вариант, пускай и не сильно функциональный.
Read On…

6 votes, 3.33 avg. rating (68% score)

Нормализация баз данных: третья нормальная форма

11 votes, 4.36 avg. rating (86% score)

Последний пост про нормальные формы, перевод книги PHP 6 and MySQL 5 for Dynamic Web Sites. Предыдущие три вынесены ссылками в конце поста. Read On…

11 votes, 4.36 avg. rating (86% score)
css.php