Implementar CAPTCHA no Formulário de Login Yii2

Advertisement

Passo 3: Configurar a Ação CAPTCHA no Controller

O widget CAPTCHA requer uma action dedicada no controller. Certifique-se de que a action ‘captcha’ está configurada no `SiteController`.

Advertisement
<?php

namespace app\controllers;

use yii\web\Controller;

class SiteController extends Controller
{
    // ... outras actions() ...

    public function actions()
    {
        return [
            'error' => ['class' => 'yii\web\ErrorAction'],
            // A ACTION CAPTCHA DEVE EXISTIR
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                'minLength' => 4,
                'maxLength' => 5,
                'offset' => 2,
                'testLimit' => 1,
            ],
            // ... outras actions ...
        ];
    }

    // ... actionLogin() e outros métodos ...
}

Notas Importantes & Segurança Adicional

  • Baseado em Sessão: Esta implementação usa sessões PHP. Configure-as de forma segura.
  • Não é a Única Solução: Combine o CAPTCHA com outras medidas:
    1. Limitação de Taxa (Rate Limiting): Use componentes como `yii\filters\RateLimiter`.
    2. Senhas Fortes: Exija senhas complexas.
    3. Logs: Registre todas as tentativas de login.
  • Redefinir Contador: O contador zera no login bem-sucedido. Uma redefinição por tempo também é viável.

Ao implementar este CAPTCHA condicional, você adiciona uma camada de segurança vital que interrompe o fluxo automatizado de ataques de força bruta, mantendo a usabilidade para usuários legítimos.

Últimos artigos