Sketch – 100 секунд про историю WordPress

Рубрика: Видео | Метки: , | Добавить комментарий

Уменьшаем количество спама с помощью .htaccess

Устали от спама? Akismet, конечно, помогает, но и ваш .htaccess может хорошо помочь. Этот простой рецепт не даст спам-ботам напрямую обращаться к файлу wp-comments-post.php, через который и постятся каменты в блог.

Просто скопируйте следующие строки в ваш .htaccess файл, который располагается в корневой папке вашего установленного WordPress. Не забывайте делать бэкапы, чтобы восстановить, в случае чего.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

Однажды изменив .htaccess файл вы значительно уменьшите входящий спам на свой блог.

via wprecipes.com

Рубрика: Настройка | Метки: , , , | Добавить комментарий

WordPress 3.2.1 Core Module XSS

Информация по данной уязвимости уже пролетела по просторам Сети, но может кто еще не в курсе (или для тех, кто не следит за безопасностью своего блога) — товарищем Darshit Ashara была найдена XSS в WordPress (post-template.php), ничего сверхинтересного, но безопасность на первом месте.

Пока официального патча нет, новой версии нет, под вот временное решение.

Файл post-template.php

Добавляем htmlentities() к указанным строчкам
Vulnerable Code Part 1

function the_title($before = '', $after = '', $echo = true) {
	$title = get_the_title();

	if ( strlen($title) == 0 )
		return;

	$title = $before . $title . $after;

	if ( $echo )
		echo htmlentities($title); /* Line No 52 Patch*/
	else
		return htmlentities($title); /* Line No 54 Patch*/
}

Vulnerable Code Part 2

function the_title_attribute( $args = '' ) {
	$title = get_the_title();

	if ( strlen($title) == 0 )
		return;

	$defaults = array('before' => '', 'after' =>  '', 'echo' => true);
	$r = wp_parse_args($args, $defaults);
	extract( $r, EXTR_SKIP );

	$title = $before . $title . $after;
	$title = esc_attr(strip_tags($title));

	if ( $echo )
		echo htmlentities($title) ;/* Line No 87 Patch here By adding htmlentities*/
	else
		return htmlentities($title); /* Line No 89 Patch*/
}

Vulnerable Code Part 3

function get_the_title( $id = 0 ) {
	$post = &get_post($id);

	$title = isset($post->post_title) ? $post->post_title : '';
	$id = isset($post->ID) ? $post->ID : (int) $id;

	if ( !is_admin() ) {
		if ( !empty($post->post_password) ) {
			$protected_title_format = apply_filters('protected_title_format', __('Protected: %s'));
			$title = sprintf($protected_title_format, $title);
		} else if ( isset($post->post_status) && 'private' == $post->post_status ) {
			$private_title_format = apply_filters('private_title_format', __('Private: %s'));
			$title = sprintf($private_title_format, $title);
		}
	}
	return htmlentities(apply_filters( 'the_title', $title, $id )); /* Line No 119 Patch*/
}

Итого: 5 строк затронуто

via habrahabr

Рубрика: Баги и фиксы | Метки: | Добавить комментарий

Обновление WordPress 2.2.2 до 3.2.1

Сейчас проведем эксперимент и обновим Wordpress 2.2.2 до 3.2.1 простой заменой файлов. Затем WP должен обновить БД, и в теории — это все.

Ранее таким же способом был запросто обновлен WordPress 2.9.2 до 3.2.

На всякий случай создан XML файл всех записей и комментариев блога. В идеале надо обновить так, что сохранились все настройки, в частности, настройки ЧПУ и шаблон.

Бэкап файлов WP старой версии делаться не будет, так как обратный откат ни в коем случае не планируется.

Итак, новые файлы залились на сервер, настал момент истины.

БД была успешно обновлена. Админка работает. И сам сайт на первый взгляд работает нормально. Не помешает вручную обновить файл wp-config.php.

Внезапно старый бложик оказался на cp1251, это может стать небольшой проблемой. Меняются все настройки, все файлы шаблона преобразуются в нужной кодировки — и все готово. Сайт готов к дальнейшему развитию, чем старая версия WP мешала.

Рубрика: Статьи | Метки: , , , | Добавить комментарий

Уязвимость нулевого дня в WordPress

Генеральный директор технологической компании Feedjit Марк Маундер (Mark Maunder) опубликовал на своем блоге информацию об обнаруженной им уязвимости в WordPress. По его словам, злоумышленники имеют возможность эксплуатировать часто используемое расширение web-платформы, с помощью которого можно получить контроль над web-сайтами жертв.

Уязвимость затрагивает практически все web-страницы, применяющие утилиту для изменения размера изображений TimThumb. По словам Маундера, данная утилита «небезопасна изначально», так как она упрощает работу хакеров по выполнению вредоносного кода.

Маундер обнаружил уязвимость после того, как его собственный web-сайт markmaunder.com был взломан. Страницы сайта неожиданно начали отображать рекламу неизвестного происхождения, хотя функция рекламы на сайте была отключена.

После тщательного расследования, он пришел к выводу, что злоумышленники использовали TimThumb для загрузки PHP-файла на одну из директорий сайта. Утилита, по словам Маундера, по умолчанию дает возможность удаленно загружать файлы из blogger.com, wordpress.com и еще пяти сайтов, без каких либо проверок.

«Если создать на web-сервере файл, подобный такому: http://blogger.com.somebadhackersite.com/badscript.php, а затем дать timthumb.php команду загрузить его, он сделает это и поместит его прямо в кеш, готовым к выполнению», — говорит Маундер.

Разработчики TimThumb работают над обновлением, закрывающим данную уязвимость.

via Security Lab

Рубрика: Новости | Метки: , , | Добавить комментарий

Новая версия WordPress 3.1.1

5-го апреля состоялся релиз WordPress 3.1.1. В это обновлении были исправлены ошибки безопасности.

  • Усиления безопасности средств массовой загрузки медиа-контента.
  • Предотвращения возможных ошибок PHP при обработке ссылок.
  • Исправлено XSS на страницах обновления базы данных.
  • И еще 26 разных тикетов было закрыто.

Скачать WordPress 3.1.1 можно со страницы wordpress.org/download/.

Рубрика: Релизы | Метки: , , | Добавить комментарий

Уязвимости в WordPress IWantOneButton Plugin

WordPress IWantOneButton Plugin 3.0.1, возможно более ранние версии

Опасность: Средняя

Наличие эксплоита: Нет

Описание:
Обнаруженные уязвимости позволяют удаленному пользователю произвести XSS нападение и выполнить произвольные SQL команды в базе данных приложения.

1. Уязвимость существует из-за недостаточной обработки входных данных в параметре «post_id» в сценарии wp-content/plugins/wantHave/updateAJAX.php, когда параметр «add» равен «want» или «have». Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.

2. Уязвимость существует из-за недостаточной обработки входных данных в параметре «post_id» в сценарии wp-content/plugins/wantHave/updateAJAX.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения.

URL производителя: wordpress.org/extend/plugins/iwant-one-ihave-one/

Решение: Способов устранения уязвимости не существует в настоящее время.

Источник: securitylab.ru

Рубрика: Плагины | Метки: , | Добавить комментарий

Неработающие плагины с JavaScript и функция wp_enqueue_script

Однажды, установив на один блог такие плагины как WP Polls и WP Postratings, была замечена следующая ошибка:

  • плагины выдавали содержание, но не работали

При исследовании исходного кода страницы было определено, что просто не загружаются их JS библиотеки, необходимые для срабатывания. Ведь плагины работают на AJAX (хотя в плагине голосования это вроде можно отключить, но так не интересно).

Чтобы исправить это, необходимо найти в файлах wp-polls.php и wp-postratings.php соответственно функцию wp_enqueue_script, подгружающую нужные нам js-скрипты. Один из параметров функции равен true. Просто заменить на false, и все должно заработать.

Что это за параметр? Этот параметр как бы говорит WordPress загружать эти скрипты в конце страницы. Все было бы хорошо, если бы это сработало. Скорее всего, глюк был в выбранном шаблоне. Но если этот баг плагинов можно исправить подобным образом, то и не нужно менять шаблон. С параметром false js-скрипты этих плагинов будут загружаться в шапке вашего сайта, что даст опросам и голосованию за пост отлично работать!

Рубрика: Баги и фиксы | Метки: , , , , , , | 1 комментарий

Использование Akismet для борьбы со спамом на разных сайтах

Оригинал статьи на английском:  The Best Ways to Fight Spam by Justin Shreve. Хотя об Akismet в WordPress сказать особо нечего. Надо лишь активировать плагин и ввести API-key. А в статье речь пойдет об интеграции Akismet в другие движки или на свой самописный сайт. То есть Akismet собирает спам не только с блогов на WP, но и с многих других, что расширяет охват.

AkismetAkismet — служба для борьбы со спамом от создателей WordPress. Главное преимущество её в том, что борьба со спамом коллективная.

Akismet может быть интегрирован в любой проект. Для этого вам требуется получить API-key для доступа к интерфейсу. Получить его можно бесплатно для некоммерческого использования, или за $5 в месяц для коммерческого — не так уж и много. Есть много плагинов для работы с Akismet, ссылки на которые даны ниже. А пока посмотрим, как подключить Akismet к собственному проекту.

Добавление проверки коммнетариев на спам от Akismet на вашем сайте

Чтобы получить ключ вам необходимо зарегистрироваться наhttp://wordpress.com/signup/. API-key не привязан ни к какому конкретному сайту, и вы сможете использовать там, где вам понадобиться.

Читать далее

Рубрика: Плагины | Метки: , | Добавить комментарий

Привет!

Это очередной бложик на WordPress! А раз уж все мы любим WordPress и постоянно копаемся в нем, было решено делиться со всеми разными фишками здесь.

Постоянно, когда из WordPress делаешь очередной блог или сайт, возникают какие-то неполадки с плагинами. Еще многие не подозревают всю мощь WordPress. Нестандартными способами использования тоже постараемся поделиться.

Рубрика: Без рубрики | Добавить комментарий