2016-12-09 5 views
-2

В приложении CakePHP3, которое требует аутентификации/авторизации, у меня есть возможность загрузки изображений.
Теперь я бы хотел, чтобы пользователи не могли видеть изображения других пользователей, например. угадывая имена изображений или такие.
Также я хотел бы использовать идентификаторы сущностей как имена файлов, которые сделали бы его также легко угадать.
Итак, как бы вы реализовали авторизацию для активов?cakephp - Как разрешить активы?

ответ

1

Я бы предотвратить «угадывание» имен файлов просто генерации случайных достаточно долго неопределяемых строку символов в качестве нового файла, как Facebook делает с загрузкой фотографий:

Потому что мы не должны беспокоиться вообще с оригинальное имя файла, мы могли бы переименовать файл, который загружает пользователь. Например, Пользователь 24976 загружает файл, который называется tomato12.png. Сценарий загрузки будет переименовать файл (например) следующее название:

1481540475_24976_iDewM51NYrBYgnIh.png

Он состоит из четырех частей:

[timestamp]_[userId]_[randomString].[suffix]

И затем сохраните имя в качестве база данных. Если вы заглянете в каталог uploads, вы сможете увидеть, какой пользователь загрузил этот файл, но аутсайдер, который не имеет права видеть индекс каталога, никогда не сможет угадать имя файла. Не требуется аутентификация.

 Смежные вопросы

  • Нет связанных вопросов^_^