Скрыть имена файлов для изображений продуктов
Есть ли способ, которым я могу скрыть имена файлов изображений для всех продуктов на веб-сайте, так что, даже если кто-то решит просмотреть источник страницы или свойства изображения, они не смогут? Мне нужен способ скрыть имена файлов, потому что в некоторых случаях они содержат информацию, которую я не хочу показывать публике.
3 ответа
Вы можете создать скрипт PHP, который принимает непрозрачный идентификатор изображения, находит соответствующее изображение и записывает его в поток ответов.
Таким образом, URL изображения на клиенте будут выглядеть ../Image.php?ID=<something useless>
,
Не забудьте установить Content-Type
,
Вы можете использовать различные методы, например, использовать функцию md5, чтобы сгенерировать хеш для имени файла изображения и сохранить изображения в любом каталоге, вставить информацию о пути в базу данных и затем получить из базы данных.
Переименование файлов и присвоение им случайных имен - самый простой способ.
Если это не вариант, использование внешнего интерфейса PHP, как показывает @SLaks, является вторым по простоте способом. Это немного потребляет ресурсы, но хорошо, если у вас мало трафика.
Если у вас много трафика и вы немного продвинулись в работе с Apache, вы также можете рассмотреть возможность использования RewriteMap
, Это заставляет Apache искать подстановки URL из текстового файла, что быстрее, чем передача ресурса через PHP. Это потребует некоторых возни, чтобы заставить это работать, все же.