Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.08.2014 09:55:48

lapaliv

Отключение сессий (слетает авторизация)

Здравствуйте, столкнулся со следующей проблемой:
У меня есть страница, на которой размещено некоторое количество картинок (около 20). Смысл в том, что если несколько раз подряд обновить страницу, то авторизация слетает. Долго разбирался в коде, и единственная версия, которая возникла, это то, что laravel воспринимает большое количество запросов к станице как ddos-атаку. Обращение к картинке идет не напрямую, а через router. Работает это след. образом:
В корневом каталоге лежит папка data, которая содержит подпапки с картинками. Когда клиент запрашивает изображение, например,

/images/folder/subfolder/alkdsjfs9fu30jfw9sdf0jd.jpg

, то router подхватывает адрес, передает его action'у и тот уже через header возвращает конкретное изображение. От прямых ссылок на файлы отказался, по личным причинам.
Сейчас, если по прямой ссылке открыть изображение в режиме инкогнито, то можно увидеть, как laravel присваивает сессию клиенту. Собственно мне нужно, что бы авторизация не слетала. Помогите. Мое мнение, либо отключить сессию на конкретный маршрут, либо как-то настроить авторизацию по-другому. Лучше конечно сессию, ибо они не нужны совсем при запросе картинок. Заранее спасибо всем! smile

#2 25.08.2014 22:36:58

Re: Отключение сессий (слетает авторизация)

  1. От прямых ссылок на файлы отказался, по личным причинам.

Я бы посоветовал пересмотреть это решение, так как и правда рискуете создать себе DoS. Если надо скрыть прямые ссылки — есть много вариантов, но в твоём случае похоже, что Laravel-то для такого скрипта тебе совсем ни к чему (я про скрипт редиректа, а не сам сайт). Если так — создай обычный public/something.php и пусть он переадресует клиента куда надо или просто выдаёт картинку через readfile(), ибо переадресовывая ты в любом случае раскрываешь путь и смысла тогда городить огород нет.

По самой проблеме — я бы удивился, если б Laravel как-то из коробки ограничивал число запросов. Когда слетает авторизация ID сессии меняется? Или cookie с ним удаляется? Может, конечно, где-то в драйвере сессии проблема с одновременной записью одной сессии — можешь попробовать включить другой (cookie, database и пр.) и посмотреть, что изменится.

Не в сети

Подвал раздела