Browsing the archives for the Wordpress category


WP REST API и дефейс wordpress сайтов. Как восстановить?

Часть I

Все уже наверное слышали про новую уязвимость которой подверглись миллионы сайтов на движке WordPress. А кто не слышал, предлагаю почитать тут (blog.sucuri.net) или тут (xakep.ru).

Так как я администрирую более сотни доменов на вордпресс, я пошел проверять нет ли у меня записей с текстом "Hacked By" и конечно же нашел их.

На каждом из ста доменов у меня за несколько лет накопилось уже около 5-10 тысяч страниц новостей.

Так что, передо мной встала задача найти, а какие еще записи были обновлены через уязвимость в REST API?

Continue Reading »

Защищаем свой wordpress-сайт от ботов

Баним wordpress ботов. Простой скрипт для борьбы с брутфорсом wordpress блогов на VDS хостинге.
Подразумевается, что wordpress CMS у вас установленная на вашем виртуальном сервере (VPS/VDS) к которому вы имеете root-доступ.

antiddos.pl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/perl

use POSIX qw/strftime/;

$| = 1;

$output = `/root/antiddos/parse.sh`;

print strftime("%F %T\n", localtime);

#print "Netstat Data:\n";
#print $output;

open(RD, "/root/antiddos/ban.txt");
while(<rd>){ chomp;
    $heh{"$_"} = 1;
};
close(RD);

# debug
if (0) {
    print "Banned list:\n";
    for $ip (sort keys %heh) {
        print $ip."\n";
    };
};

print "Do action:\n";
@data = split("\n",$output);
foreach $line (@data) {
    ($num, $ip) = split(" ", $line);
    if ($heh{"$ip"} == 1) {
        print "\t$num $ip (already banned)\n";
        next;
    };
    print "\t$num $ip\n";
    if ($num > 20) {
        $run_cmd = "/sbin/iptables -A INPUT -s $ip -j DROP";
        system($run_cmd);
        system("echo $ip >> /root/antiddos/ban.txt");
        print $run_cmd."\n";
        print "$ip banned.\n";
    };
};
sleep(1);

# ok
</rd>

И вспомогательный скрипт, который парсит лог фронтенда на nginx.
Continue Reading »

FastAdmin: новый плагин для WordPress

fastadmin

Написал плагин для вордпресса, для быстрой фильтрации большого количества private постов. Быстрота осуществляется за счет использования ajax-запросов (то есть, без перезагрузки страницы все происходит).

Как работает

В конце контента постов со статусом "личное" выводится дополнительный html код. С двумя кнопками "удалить" и "опубликовать". Также в html head wordpress-а (обычный и админа) добавляется новый js-скрипт с ajax-вызовом. При клике "удалить" пост удаляется, при клике "опубликовать", соответственно, публикуется, то есть меняется состояние поста из "private" на статус "public".

Continue Reading »

Как добавить ссылку «редактировать запись» в шаблон wordpress

Достаточно просто добавить в файл шаблона в любом месте (но внутри цикла "The Loop") вот эту строчку.

1
<?php edit_post_link( $link, $before, $after, $id ); ?>

Эта функция сама проверяет, админ открыл страничку или нет. Точнее, если у пользователя права на редактирование этого поста. И если есть - показывает ссылку на редактирование. Это все полезно, если вы нашли/скачали хорошую тему, но этой "фишки" там не оказалось.

Статьи в тему:
WP: Function Reference - "edit post link"
Красивая ссылка на редактирование записи в WordPress

Хорошего дня и удачи! :)

Если в теме Вордпресса не показывается Admin Bar

Проверьте, что footer.php в файлах темы wordpress-а вызывает функцию wp_footer() где-нибудь. Обычно в самом-самом низу файла (перед самым тегом </body>). Эта функция генерирует код который нужен для показа admin bar-а.

Например, у меня это стало выглядеть так:

1
2
3
<? wp_footer(); ?>
</body>
</html>

Вот и все, после этого строчка с админ баром на верху появилась. Удачи!

P.S. Рецепт стащен со stackoverflow, ибо самому было разбираться лень.

WordPress — полный текст записей в админке

Оказывается в wordpress-е есть очень крутая фишка - развернутый вид. Это просто незаменимая вещь, если надо просмотреть и отфильтровать кучу импортированных записей на сайте-сателлите. Забавно, что я всегда пользовался видом в виде списка. И про этот дополнительный вид отображения не знал.

Вот как выглядит таблица записей в обычном виде, то есть в виде списка:

wp_expand_view3

Continue Reading »

46 горячих клавиш ускоряющих работу в WordPress

wp_image

Знаете ли вы, что WordPress обладает собственными горячими клавишами? Если вас интересуют пути ускорения написания постов или модерации комментариев, вам следует с ними ознакомиться - они способны серьёзно сэкономить ваше время. В этой статье мы поделимся с вами наиболее эффективными клавишными комбинациями WordPress.

Горячие клавиши визуального редактора

Continue Reading »

Защита wordpress от bruteforce ботов

Этот код в .htaccess в корне каталога с wp позволит снять нагрузку с сервера. Всем пользователям не с оперы (в том числе ботам) будет возвращаться код 404 вместо wp-login.php.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# anti wp password bruteforce attack
RewriteCond %{REQUEST_URI} wp-login.php|wp-admin
RewriteCond %{HTTP_USER_AGENT} !^Opera/[0-9.]+
RewriteRule . - [R=404,L]

</IfModule>

php_value upload_max_filesize 4M

# END WordPress

Настройки по умолчанию для медиафайлов в вордпрессе

У wordpress-а есть одна особенность. При загрузке нескольких картинок, он автоматически "по умолчанию" ставит опцию "Ссылка" на "Медиафайл". И чтобы убрать это надо на каждую картинку кликнуть и выбрать "Нет ссылки". Вот скриншот:

mediafile_link

Если вас это достало так же как и меня, то вот вам решение которое я только что нашел:

Continue Reading »

Полезные плагины под wordpress

Подборка хороших плагинов которые я использую.

Два обязательных плагина для борьбы со спамом:
"Math Comment Spam Protection"
"Simple Trackback Validation"

Плагин добавляет ссылки на похожие страницы внизу статьи:
"ELI's Related Posts Footer Links and Widget"

Для создания html карты сайта для пользователей:
"WP Sitemap"

А этот создает xml карту сайта для поисковых систем:
"Google XML Sitemaps"

Бэкап базы данных вордпресса (то есть файлы надо самому бэкапить):
"WP-DB-Backup"

Добавление кнопки для того чтобы поделится статьей в твиттер:
"WP-Twitter Retweet Button"

Последним я заменил тяжелый "WP Socializer" плагин, при включении которого почему-то выдача страниц на вордпрессе начинает тормозить.

Чтобы добавить их перейдите в раздел [плагины] -> [добавить новые] и сделайте поиск по имени.

А какие полезные плагины используете вы?