Страница 1 из 1

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

СообщениеДобавлено: 05 июл 2012, 18:49
real2012
Атака спам ботов в комментарии уже третий день иностранные спам боты добавляют по 10-20 комментов
как спастись?

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

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

Для этого в файле 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.')
        );
    }

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

СообщениеДобавлено: 06 июл 2012, 19:43
real2012
спасибо))

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

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

Факт, что по-умолчанию в Yii не особо бронебойная капча. В новой версии Open Real Estate это уже будет учтено.