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`.
<?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:
- Limitação de Taxa (Rate Limiting): Use componentes como `yii\filters\RateLimiter`.
- Senhas Fortes: Exija senhas complexas.
- 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.

