Плагин ReCapcha

ReCapcha
Плагин ReCapcha, проверка capcha при добавлении топика, позволяет защитить сайт от спам атак.



Все последние изменения и доработки по плагину доступны на GitHub.

Появилась возможность включать капчу в топиках — ссылок / опросов / фотосетов.

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

Сейчас проверка capcha идёт только при добавлении топиков но в дальнейшем если будут спамить блоги то можно будет расширить плагин и установить capcha и на блоги.

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

16 комментариев

avatar
Спасибо Вам большое, очень полезный плагин.
Пару пожеланий сходу:
-Возможность отключения каптчи при редактировании.
-Возможность отключения каптчи при определенном рейтинге.
avatar
А еще можно опцианальное включение в комментариях… По рейтингу или еще как…
avatar
Я больше склоняюсь что в скором будущем нужно будет делать капчу не для комментариев а для блогов..:)
avatar
Ну и это тоже, если плагин будет востребован…
avatar
Ошибка: Для работы плагина необходимо ядро LiveStreet версии не ниже 1.0.3 У меня 1.0.3 стоит
avatar
Я тестировал на последней сборке 1.0.3 и проблем не было, с такой проблемой не разу не сталкивался по этому подсказать как решить не могу.
Дайте ссылку на проект где это можно увидеть..? Или лучше скинуть мне репозиторий без плагинов и файлов uploads/ я на local проверю и постараюсь найти причину этой ошибке.
avatar
да я в xml убрал версию, и норм.
avatar
При регистрации капча не останавливает спамера. Почему при спам-публикации будет? Не хочу оспаривать необходимость плагина (может он кому и пригодится), но, кроме раздражающих неудобств для нормальных пользователей, ничего полезного в нем нет.
avatar
Вообще я думаю нужно протестировать на проектах которые спамят, к сожалению такой возможности у меня нет, был проект но я спамеров остановил до выхода плагина. А там уже будет видно помогает или нет и возможно нужно будет устанавливать более защищённую капчу.
А устанавливать или нет плагин, как вы правильно подметили дело добра вольное.:)
avatar
Пара советов:

— во-первых, целиком переопределять методы без вызова родительских это очень-очень плохо. В частности ваш checkTopicFields
avatar
упс…

… должен бы выглядеть примерно так:
protected function checkTopicFields($oTopic) {
		/**
		 * Добавляем переменную captcha
		 */
		if (Config::Get('plugin.recapcha.use.topic')) {
			$oTopic->setCaptcha(getRequestStr('captcha'));
		}
            return parent::checkTopicFields($oTopic);
}		
avatar
Хорошо подсказали, это подправлю.
Вообще я искал способ что бы это вставить через Hook, без переопределения, но к сожалению не нашёл нужного Hook'a что бы это вставить..:(
avatar
Можно и через хуки, но хуки это костыли. Везде, где можно лучше бы использовать объектную модель — она для этого и придумана :)
avatar
Во-вторых, какие сложности с включением капчи только для добавления? Самый простой способ приходит в голову — это переопределить метод EventEdit того же экшена как-то так:
	protected function EventEdit() {
            Config::Set('plugin.recapcha.use.topic',false);
            return parent::EventEdit();
        }
т.е. если у нас редактирование, то мы принудительно не используем капчу.

Но это так — навскидку. Возможно есть каике-то еще нюансы.

Опять же, нюанс в том, что не запрещается постинг опросов, фотосетов и линков, а это тоже может быть источником спама.
avatar
Я пробовал сделать использование другой переменной в конфиге, но у меня из-за кеша или чего либо ещё, иногда пропускает без капчи а бывает выдаёт ошибку о не введённой капчи.
Я использовал наследование _EntityTopic
	public function Init(){
		// Определяем валидацию captcha
		if (Config::Get('plugin.recapcha.use.topic')) {
			$this->aValidateRules[] = array('captcha', 'captcha', 'on' => array('topic','link','photoset'));
		}
		parent::Init();
	}

и наследование _ActionTopic
/**
	 * Редактирование топика
	 *
	 */
	protected function EventEdit() {
		Config::Set('plugin.recapcha.use.topic',false);
		
		return parent::EventEdit();
	}

А по повоу опросов, фотосетов и линков потом дополню, там действительно нужна капча.
avatar
А по повоу опросов, фотосетов и линков потом дополню, там действительно нужна капча.
Решено..:)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.