Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте, столкнулся со следующей проблемой:
У меня есть страница, на которой размещено некоторое количество картинок (около 20). Смысл в том, что если несколько раз подряд обновить страницу, то авторизация слетает. Долго разбирался в коде, и единственная версия, которая возникла, это то, что laravel воспринимает большое количество запросов к станице как ddos-атаку. Обращение к картинке идет не напрямую, а через router. Работает это след. образом:
В корневом каталоге лежит папка data, которая содержит подпапки с картинками. Когда клиент запрашивает изображение, например,
/images/folder/subfolder/alkdsjfs9fu30jfw9sdf0jd.jpg
, то router подхватывает адрес, передает его action'у и тот уже через header возвращает конкретное изображение. От прямых ссылок на файлы отказался, по личным причинам.
Сейчас, если по прямой ссылке открыть изображение в режиме инкогнито, то можно увидеть, как laravel присваивает сессию клиенту. Собственно мне нужно, что бы авторизация не слетала. Помогите. Мое мнение, либо отключить сессию на конкретный маршрут, либо как-то настроить авторизацию по-другому. Лучше конечно сессию, ибо они не нужны совсем при запросе картинок. Заранее спасибо всем!
- От прямых ссылок на файлы отказался, по личным причинам.
Я бы посоветовал пересмотреть это решение, так как и правда рискуете создать себе DoS. Если надо скрыть прямые ссылки — есть много вариантов, но в твоём случае похоже, что Laravel-то для такого скрипта тебе совсем ни к чему (я про скрипт редиректа, а не сам сайт). Если так — создай обычный public/something.php и пусть он переадресует клиента куда надо или просто выдаёт картинку через readfile(), ибо переадресовывая ты в любом случае раскрываешь путь и смысла тогда городить огород нет.
По самой проблеме — я бы удивился, если б Laravel как-то из коробки ограничивал число запросов. Когда слетает авторизация ID сессии меняется? Или cookie с ним удаляется? Может, конечно, где-то в драйвере сессии проблема с одновременной записью одной сессии — можешь попробовать включить другой (cookie, database и пр.) и посмотреть, что изменится.
Не в сети
Страницы 1