Спамят обойдя reCaptcha

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
zxczxc12
Сообщения: 161
Зарегистрирован: 2013.01.24, 21:16

Спамят обойдя reCaptcha

Сообщение zxczxc12 »

Общем не могу понять что делать с этой бедой

Использую reCaptcha v3
himiklab

Повадились ко мне спамеры . У меня регистрация с подтверждением мыла , но первый шаг проходят и это крайне неприятно .
Если открывать с браузера - все работает . Но гады юзают какой то скрипт который непосредственно сабмитит данные на контроллер .
Почему то при таком подходе , верификация reCaptcha не происходит
Что делать - без понятия :-(

модель :

Код: Выделить всё


...
    public $cur_step;

    /**
     * @var array
     */
    private $_step_names = [
        1 => 'step-one',
        2 => 'step-two',
        3 => 'step-tree',
        4 => 'step-four',
    ];

/**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            ['name', NameExistValidator::className(), 'skipOnEmpty' => false],

            [['name', 'greeting'], 'filter', 'filter' => function ($value) {
                return stripTags($value, false);
            }],

            ['name', 'string', 'min' => 3, 'max' => 30],
            ['greeting', 'string', 'min' => 2, 'max' => 200],

            [['email', 'greeting'], 'filter', 'filter' => 'trim'],
            ['email', 'email'],
            ['is_eighteen', 'checkEighteen'],
            ['email', 'string', 'max' => 100],

            ['email', EmailExistValidator::className(), 'skipOnEmpty' => false],
            ['email', 'checkBanEmail', 'skipOnEmpty' => false],

            [[
                'gender_id',
                'country_id',
                'region_id',
                'city_id',
                'role_id',
            ], 'integer'],

            [[
                'country_id',
                'region_id',
                'password',
                'gender_id',
                'birth_date',
                'email',
                'name',
                'is_eighteen',
                //'reCaptcha'
            ], 'required'],
           
... 
            [['reCaptcha'], ReCaptchaValidator3::class,
                'secret' => '1111111111111111111111111111'
            ],

            ['password', 'string', 'min' => 5, 'max' => 50],
...
        ];
    }

....

/** @inheritdoc */
    public function scenarios()
    {
        $scenarios = parent::scenarios();
        return ArrayHelper::merge($scenarios, [
            'step-one' => ['name', 'email', 'password', 'is_eighteen'],
... 
        ]);
    }
контроллер

Код: Выделить всё

...
 $model_form = new RegistrationForm(['scenario' => 'step-one', 'cur_step' => 1]);

        $this->performAjaxValidation($model_form);

        if ($model_form->load(\Yii::$app->request->post()) && $model_form->validate()) {
            $status = $model_form->registerFirstStep();
            if ($status === false) {
                \Yii::error('Проблема на первом шаге регистрации пользователя');

                setFlash(FLASH_STATUS_ERROR, \Yii::t('system', 'Возникла системная ошибка. Попробуйте позже'));
            } else {
                return $this->controller->redirect([$status]);
            }
        }
        
        ...

Почему рекапча не срабатывает при POST вызове с данными неосредственно контроллера ?
Последний раз редактировалось zxczxc12 2020.03.31, 06:00, всего редактировалось 1 раз.
azz
Сообщения: 197
Зарегистрирован: 2016.07.06, 17:20

Re: Спамят обойдя reCaptcha

Сообщение azz »

Ну если постить на форумах secret то наверно будут обходить ;)
zxczxc12
Сообщения: 161
Зарегистрирован: 2013.01.24, 21:16

Re: Спамят обойдя reCaptcha

Сообщение zxczxc12 »

azz писал(а): 2020.03.31, 00:16 Ну если постить на форумах secret то наверно будут обходить ;)
Упс
Это первый такой засвет , а спамят давно :-)
Закрыто