Я использовал 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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