Laravel8系の場合、LoginControllerが無くなり、fortifyになった。
それに伴い、以前まであった、一定時間内に規定の回数以上ログインに失敗した時にかかるロックが無効化されている。
### 仕組み
config/fortify.php
'limiters' => [ 'login' => null, ],
/vendor/laravel/fortify/routes/routes.php
$limiter = config('fortify.limiters.login');
#### Limit
app/Providers/RouteServiceProvider.php
L configureRateLimitingの中に書く。
RateLimiter::for('login', function (Request $request) { return new Limit('', 2, 5); });
config/fortify.php
'limiters' => [ 'login' => 'login', ],
Limitの使い方
class Limit (View source)
Properties
– mixed|string $key The rate limit signature key.
– int $maxAttempts The maximum number of attempts allowed within the given number of – minutes.
– int $decayMinutes The number of minutes until the rate limit is reset.
– callable $responseCallback The response generator callback.
Limit(”, 2, 5)だと、2回失敗したら、5分間は再ログインできなくなる。
どんくらいが妥当だろうか? 10回失敗したら10分とか?
パスワードの総当たり試行はブルートフォース攻撃というらしい。なるほどね。