andy
  • 0
Эксперт

Скрыть/защитить исходные полноразмерные изображения

  • 0

Я надеялся, что можно будет сохранить исходные изображения в отдельный каталог для изображений с измененным размером, чтобы их можно было безопасно скрыть, но это кажется слишком сложным.

Итак, теперь я спрашиваю, есть ли какие-либо способы защитить исходные полноразмерные изображения от публики, но при этом разрешить им просматривать изображения с измененным размером.

Я не говорю о сокрытии/защите изображений на экране, более того, о способах предоставления исходным изображениям неугадываемых URL-адресов или о какой-либо подобной схеме, чтобы предотвратить их загрузку.

т.е.

uploads/my_image-200x200.jpg (учитывая этот URL)

uploads/my_image.jpg (этот URL можно легко вычислить)

Share
  1. Вы когда-нибудь находили решение этой проблемы? Кажется странным, что со всеми плагинами WP ни один из них не поможет вам сохранить исходные изображения на 100% изолированными (даже от хороших угадывателей).

    • 0
    • Моя проблема с использованием TimThumb для создания миниатюр заключается в том, что мне нужна функциональность, позволяющая самостоятельно обрезать миниатюры. Если я добавляю водяные знаки к изображениям, то хочу регенерировать миниатюры, на которых может отображаться водяной знак (если это не так, то, конечно, исходное изображение все еще может быть получено кем-то, кто может определить URL-адрес). Если бы исходному изображению можно было указать другой каталог или префикс для сгенерированных изображений, они были бы в полной безопасности от посторонних глаз, я не мог понять, как я могу отредактировать media.php, чтобы просто повлиять на исходное изображение, оставив измененные изображения с неизменный адрес.

      • 0
    • Я полагаю, что это и для людей, и для ботов. Однако в основном люди, я не хотел, чтобы исходное изображение можно было просматривать в большем исходном размере, если оно будет загружено и распечатано. Другие изображения с измененным размером идеально подходят для просмотра на экране, но их качество печати будет низким. Это для веб-галереи, содержащей произведения искусства.

      • 0
    • Спасибо, я использовал это на другом веб-сайте, и хотя это полезный плагин, я не уверен, что он подойдет для того, как я хочу, чтобы CMS работала. Здесь я использую настраиваемый тип сообщения, где каждый элемент имеет свои собственные метаданные/изображение/url (не URL-адрес javascript). Весь сайт представляет собой галерею.

      • 0
    • Кроме того, я нашел очень старый trac-тикет: core.trac.wordpress.org/ticket/2794, касающийся подключения создания эскизов.

      • 0
    • Ответ должен быть чем-то большим, чем просто ссылка на внешний сайт. Пожалуйста, добавьте решение.

      • 0
  2. Я искал способ сделать это и нашел эту страницу… затем я подумал о том, чтобы поместить это в файл.htaccess в папку загрузок WordPress, и пока это работает для меня… хорошо?

    <FilesMatch "\.jpg$">
        order allow,deny
        deny from all
    </FilesMatch>
    
    <FilesMatch "-[0-9]+x[0-9]+\.jpg$">
        order allow,deny
        allow from all
    </FilesMatch>
    

    Первая часть запрещает доступ ко всем файлам.jpg, а вторая часть ищет файлы с размером, добавленным к имени файла, и разрешает доступ к ним… вы также можете добавить директивы для любых других файлов.jpg, которые должны быть доступны для просмотра, но все моя другая графика — это файлы.png, поэтому для меня это не проблема.

    • 0
  3. Я знаю только одно: ваши изображения НИКОГДА не будут защищены, если вы будете отображать их эскизы на основе реального URL-адреса.

    Но у меня есть несколько идей, первая выглядит великолепно и должна вам подойти. Смешивание их вместе значительно усложнит доступ к вашим изображениям.

    Отредактируйте файл wp-includes\media.php.

    Строка 435:

    $suffix = "{$dst_w}x{$dst_h}";
    
    $info = pathinfo($file);
    $dir = $info['dirname'];
    $ext = $info['extension'];
    $name = wp_basename($file, ".$ext");
    

    Игра с $suffix и $name может помочь, попробуйте.

    Например. изменение $sufix на «что-то» приведет к выводу имен эскизов как:

    загрузки/мое_изображение-что-то.jpg

    Все еще легко догадаться, но что произойдет, если вы добавите что-то перед «my_image»? Что-то случайное + случайные имена в формате jpg = мне кажется довольно безопасным 🙂

    Используйте TimThumb.

    Он создает миниатюры «на лету», например. у вас есть http://www.domain.com/myimage.jpg и вы хотите отобразить миниатюру 200×200, поэтому вы просто помещаете timthumb.php куда хотите, а затем пишете что-то вроде:

    <img src="timthumb.php?src=www.domain.com/myimage.jpg&h=200&w=200&zc=1" alt=""> 
    

    Это не идеально, но всегда сложнее, чем простая ссылка, особенно когда дело доходит до сбора изображений ботами.

    Используйте плагин водяных знаков.

    Вероятно, самый «безопасный» вариант, особенно когда вы создаете миниатюры перед добавлением водяных знаков к полноразмерным изображениям.

    • 0
  4. Зачем мучиться, это возможно, но требует прыжков через всевозможные обручи и использования большего количества ресурсов. Вы можете использовать fopen, базу данных или вложенные файлы php, например, посмотрите на класс защиты изображений php

    Это для людей или ботов?

    • 0
  5. Используйте плагин Next Gen Gallery: миниатюрам присваиваются разные имена файлов, а галереи и сообщения могут иметь отношение «многие ко многим». Галерея NextGEN

    • 0
  6. Если вы не возражаете против редактирования ядра WordPress, я нашел несколько мест, которые, возможно, стоит посмотреть.

    Просмотр wp-admin/includes/media-upload.php привел меня к media_handle_upload() (строка № 186) и image_resize() (строка № 405 файла wp-includes/media.php).

    media_handle_upload() имеет дело с отправкой медиа-формы.

    image_resize() обрабатывает как минимум имя изображения с измененным размером (например, имя файла.jpg изменено на имя файла-200×200.jpeg).

    Я также нашел wp_create_thumbnail() (строка № 23 wp-includes/wp-admin/image.php), в котором есть фильтр «wp_create_thumbnail», вызываемый после вышеупомянутого image_resize(), если вы хотите попробовать использовать подключаемый маршрут.

    • 0
  7. Попробуйте этот плагин, который защищает изображение от «просмотра изображения» http://wordpress.org/support/topic/great-plugin-to-protect-content-amp-images-of-your-blog.

    • 0

Оставить ответ

You must login to add an answer.