Безопасное управление файлами с помощью symfony

По умолчанию symfony загружает файл в папку web / upload, поэтому они доступны для всех. Мне нужно проверить учетные данные пользователя для каждого запроса в файл. Как мне это сделать?

Solutions Collecting From Web of "Безопасное управление файлами с помощью symfony"

Переместите свои загрузки за пределы вашего веб-сайта, например, в / data / uploads. В этом случае вам нужно поместить это в файл ProjectConfiguration:

sfConfig::set('sf_upload_dir' => sfConfig::get("sf_data_dir") . DIRECTORY_SEPARATOR . 'uploads'); 

Если вы всегда использовали sf_upload_dir для указания папки uploads, все ваши файлы будут там сохранены.

Вторая часть решения требует нового действия, которое получает имя файла, проверяет, имеет ли пользователь доступ к нему, и возвращает:

  • либо ошибка 403
  • или содержимое файла через readfile() , после установки правильных заголовков Content-Type и Content-Lenght.