Атака спам ботов в комментарии

Пишите о найденных ошибках в эту тему

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Атака спам ботов в комментарии

Сообщение real2012 » 05 июл 2012, 18:49

Атака спам ботов в комментарии уже третий день иностранные спам боты добавляют по 10-20 комментов
как спастись?
real2012
Гражданин
Гражданин
 
Сообщения: 118
Зарегистрирован: 11 апр 2012, 21:50
Очки репутации: 3

Re: Атака спам ботов в комментарии

Сообщение Xpycm » 05 июл 2012, 21:00

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

Для этого в файле protected\modules\comments\views\backend\_form.php добавьте после:
Код: Выделить всё
<?php echo $form->labelEx($model'verifyCode');?>
<?php $this
->widget('CCaptcha', array('captchaAction' => '/apartments/main/captcha''buttonOptions' => array('style' => 'display:block;') ));?><br/>
<?php echo $form->textField($model'verifyCode');?><br/>
<?php echo $form->error($model'verifyCode');?>


следующий код:
Код: Выделить всё
<?php echo $form->labelEx($model,'isBot'); ?>
<?php 
echo $form->dropDownList($model,'isBot', array(=> 'Да'=> 'Нет'), array('class' => 'width150')); ?>
<?php 
echo $form->error($model,'isBot'); ?>


В файле protected\modules\comments\models\Comment.php после:
Код: Выделить всё
public $username


добавьте:
Код: Выделить всё
public $isBot


В этом же файле в метод public function attributeLabels() добавьте после:
Код: Выделить всё
'verifyCode' => 'Введите код с картинки'


такую строку:
Код: Выделить всё
'isBot' => 'Вы бот?'


В файле protected\modules\apartments\controllers\MainController.php замените:
Код: Выделить всё
if ($comment->save()) {
    if (
$comment->active == Comment::STATUS_PENDING){
        
Yii::app()->user->setFlash(
            
'newComment',
            
Yii::t('module_comments','Thank you for your comment. Your comment will be posted once it is approved.')
        );
    }


на:
Код: Выделить всё
if (Yii::app()->user->isGuest && !$_POST['Comment']['isBot'])
    
throw404();

if (
$comment->save()) {
    if (
$comment->active == Comment::STATUS_PENDING){
        
Yii::app()->user->setFlash(
            
'newComment',
            
Yii::t('module_comments','Thank you for your comment. Your comment will be posted once it is approved.')
        );
    }
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Атака спам ботов в комментарии

Сообщение real2012 » 06 июл 2012, 19:43

спасибо))
real2012
Гражданин
Гражданин
 
Сообщения: 118
Зарегистрирован: 11 апр 2012, 21:50
Очки репутации: 3

Re: Атака спам ботов в комментарии

Сообщение Xpycm » 07 июл 2012, 12:34

Если не поможет, то в расширениях Yii есть "мегакапча" - http://www.yiiframework.com/extension/captcha-extended/ и reСaptcha- http://www.yiiframework.com/extension/recaptcha/ с инструкциями по установке.

Факт, что по-умолчанию в Yii не особо бронебойная капча. В новой версии Open Real Estate это уже будет учтено.
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50


Вернуться в Ошибки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41

cron