41man / login-gate-bundle
检查网站上的暴力破解攻击
0.7.1
2019-05-12 10:09 UTC
Requires
- symfony/config: ^3.3|^4.0
- symfony/dependency-injection: ^3.3|^4.0
- symfony/security-bundle: ^3.3|^4.0
Requires (Dev)
- doctrine/doctrine-bundle: ^1.6.3
- doctrine/doctrine-fixtures-bundle: ^2.3
- doctrine/mongodb-odm: ~1.0
- doctrine/mongodb-odm-bundle: ~3.0
- doctrine/orm: ^2.5.4
- phpunit/phpunit: ^5.4
- symfony/browser-kit: ^3.3|^4.0
- symfony/css-selector: ^3.4
- symfony/form: ^3.3|^4.0
- symfony/templating: ^3.3|^4.0
This package is not auto-updated.
Last update: 2024-09-21 08:45:48 UTC
README
此包用于检测Symfony应用程序的暴力破解攻击。之后,将暂时禁用攻击者的登录。此包还提供特殊事件,当检测到暴力破解攻击时,可以执行自定义处理程序。
兼容性
此包自0.6版本开始与Symfony 4兼容。
安装
通过Composer添加此包
composer require anyx/login-gate-bundle
配置
在app/config/config.yml中添加
login_gate: storages: ['orm'] # Attempts storages. Available storages: ['orm', 'session', 'mongodb'] options: max_count_attempts: 3 timeout: 600 #Ban period watch_period: 3600 #Only for databases storage. Period of actuality attempts
注册事件处理程序(可选)。
services: acme.brute_force_listener: class: Acme\BestBundle\Listener\BruteForceAttemptListener tags: - { name: kernel.event_listener, event: security.brute_force_attempt, method: onBruteForceAttempt }
使用
在以下示例中,我们通过依赖注入在SecurityController.php中导入检查器。
namespace App\Controller; use Anyx\LoginGateBundle\Service\BruteForceChecker; /** * @var BruteForceChecker $bruteForceChecker */ private $bruteForceChecker; /** * SecurityController constructor. * @param BruteForceChecker $bruteForceChecker */ public function __construct(BruteForceChecker $bruteForceChecker) { $this->bruteForceChecker = $bruteForceChecker; }
现在我们可以使用检查器来查看是否允许某人登录。
$this->bruteForceChecker->canLogin($request)
我们还可以在登录成功时清除登录尝试。
$this->bruteForceChecker->getStorage()->clearCountAttempts($request);
有关更多示例,请参阅测试。