Я использовал Cache в Laravel, чтобы запретить спам с IP-адресов, в поисках лучшего решения.Php

Кемеровские программисты php общаются здесь
Anonymous
Я использовал Cache в Laravel, чтобы запретить спам с IP-адресов, в поисках лучшего решения.

Сообщение Anonymous »

Вот как я это делаю:

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

$ip = $request->ip();

if (Cache::has('banned_ip_' . $ip)) {
return response()->json([
'message' => 'Access blocked',
'reason' => 'You have been banned from accessing this service.'
], Response::HTTP_FORBIDDEN);
}
if (
str_contains($code, 'admin') ||
str_contains($code, 'env') ||
str_contains($code, 'config') ||
str_contains($code, 'php') ||
str_contains($code, 'service') ||
str_contains($code, 'setting') ||
str_contains($code, 'server')
) {
Log::channel('shortLink')->warning('Blocked access for code: ' . $code . ' from IP: ' . $ip);

Cache::put('banned_ip_' . $ip, true, now()->addDay());

return response()->json([
'message' => 'Access blocked',
'reason' => 'Forbidden code detected, your IP has been banned.'
], Response::HTTP_FORBIDDEN);
}
Я ищу лучший способ сделать это, но понятия не имею, что делать.
И этот код находится в промежуточном программном обеспечении.
Я ожидаю лучшего способа, если он есть.

Подробнее здесь: https://stackoverflow.com/questions/790 ... r-solution

Вернуться в «Php»