Size: a a a

Laravel для начинающих

2021 February 02

Y

YourPersonalGradeOfH... in Laravel для начинающих
Ethan Bryan
Вечер добрый кто не спит. Как по аналогии с throttle сделать ограничение если пользователь ловит ошибку 404 более скольки-то раз? Сканируют сайт ботом на наличиие дырок, хочу блокировать и отдавать 429 ошибку
На самом деле поисковые боты этого не одобрят.
источник

EB

Ethan Bryan in Laravel для начинающих
Поисковики должны 429 нормально воспринимать
источник

EB

Ethan Bryan in Laravel для начинающих
Хотя по факту хз
источник

EB

Ethan Bryan in Laravel для начинающих
Я нашел косяк
источник

EB

Ethan Bryan in Laravel для начинающих
оказывается у мен не существующую страницу перехватывает другой роутер выше
источник

EB

Ethan Bryan in Laravel для начинающих
И тут еще одна сложность внутри контроллера самому реализовать поведение throttle ни как?
источник

EB

Ethan Bryan in Laravel для начинающих
Вот вновник Route::get('/{slug}', 'SiteController@pages')->name('pages');
источник

EB

Ethan Bryan in Laravel для начинающих
И уже там если страницы не сущетвует показываем 404
источник

EB

Ethan Bryan in Laravel для начинающих
А если из контроллера вернуть что-то вроде return $next($request);
Он пойдет к следующему роуту по списку?
источник

Y

YourPersonalGradeOfH... in Laravel для начинающих
Ethan Bryan
А если из контроллера вернуть что-то вроде return $next($request);
Он пойдет к следующему роуту по списку?
Нет, контроллер это уже конечная точка
источник

Y

YourPersonalGradeOfH... in Laravel для начинающих
Ethan Bryan
оказывается у мен не существующую страницу перехватывает другой роутер выше
Ну так ты поменяй их порядок. Сначала конкретные роуты идут, а потом уже wildcard
источник

Y

YourPersonalGradeOfH... in Laravel для начинающих
Ethan Bryan
Поисковики должны 429 нормально воспринимать
А я кстати не понял, в чем проблема выдавать 404 все время то?
источник

EB

Ethan Bryan in Laravel для начинающих
Route::get('/{slug}', 'SiteController@pages')->name('pages');

Route::fallback(function () { abort('404'); })->middleware('throttle:5,30');

В первом случае там запрос firstOrFail, который не дает дойти до последнего роутра
источник

EG

Egor Gruzdev in Laravel для начинающих
Сегодня вот такое в twitter попалось, может прикрутить туда
https://laravel.com/docs/8.x/routing#customizing-missing-model-behavior
источник

EB

Ethan Bryan in Laravel для начинающих
Egor Gruzdev
Сегодня вот такое в twitter попалось, может прикрутить туда
https://laravel.com/docs/8.x/routing#customizing-missing-model-behavior
Возможно поможет, но я на 7
источник

EB

Ethan Bryan in Laravel для начинающих
YourPersonalGradeOfHeroin
А я кстати не понял, в чем проблема выдавать 404 все время то?
Защита от скана. Что бы отбить охоту это делать. Ибо они ждут ответ есть страница или нет. А 429 для них является не определённым ответом.
источник

Y

YourPersonalGradeOfH... in Laravel для начинающих
Ethan Bryan
Защита от скана. Что бы отбить охоту это делать. Ибо они ждут ответ есть страница или нет. А 429 для них является не определённым ответом.
Ну я так понимаю ты всё же заинтересован в том, чтобы все возможные поисковики проиндексировали весь твой сайт. Или я ошибаюсь?
источник

EB

Ethan Bryan in Laravel для начинающих
Так а в чем Вы видите проблему с поисковиками. Их роботы что массово полезут на несущетующие страницы?
источник

EB

Ethan Bryan in Laravel для начинающих
Ограничение скорости то для сработки в получении 404 ошибки только
источник

VB

Vladislav Bulgakov in Laravel для начинающих
и слить краулинговый бюджет в ноль
источник