Запрет доступа к оригиналам изображений Запрет доступа к оригиналам изображений
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Запрет доступа к оригиналам изображений

Started by question, January 15, 2011, 11:18:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

question

Всем привет! Мне нужно запретить доступ к оригиналам изображений для всех пользователей. То есть если пользователь откроет такую вот ссылку - http://coppermine-gallery.net/demo/cpg15x/albums/userpics/*/orig_*.jpg, к примеру, то возникнет ошибка 403. Каким образом можно это реализовать? Насколько я знаю что-то подобное можно делать в .htaacess. Кто может помочь? Спасибо!

MISHA

пользователи===группы===>>>Уровень доступа

никакого
только миниатюры
миниатюры и промежуточные изображения
миниатюры, промежуточные и полноразмерные изображения
Что бы Ктулху не воскрес, подпишись на RSS

question

Я немного неправильно выразился. Дело в том, что меня интересует запрет доступа к изображениям абсолютно для всех пользователей. Для гостей в первую очередь. Также подчеркну, что нужно закрыть доступ только к оригиналам изображений (которые без watermark, с префиксом "orig_").

MISHA

ну так поставь всем доступ (миниатюры и промежуточные изображения) а гостым вообще оставь только миниатюры
Что бы Ктулху не воскрес, подпишись на RSS

question

Вы не поняли. Если человек знает прямую ссылку на изображение, то ставить какие-то подобные ограничения бесполезно.

Cubatao

Да, кстати, я об этом не думал как-то до того как прочитал эту тему. А ведь дырка большая получается. Получается, что водяной знак не спасёт. Удалять оригиналы не вариант, мало ли чего. Средствами галереи (в конфигурации) это не решается, подскажите кто чего знает!

MISHA

У моего знакомого если сайт где можно лить мп3, так вот чтобы эти мп3шки не выкладывали на других сайтах он сделал это:
Можно поковыряться и сделать что-то подобное для галереи
/* генерируем случайное число (ключ) */
$random = rand(100000, 999999);

/* пишем в базу */
$result = mysql_query("INSERT INTO `download` ( `id` , `key` , `ip` , `date` ) VALUES ('', '".$random."', '".$_SERVER["REMOTE_ADDR"]."', '".date("Gi")."')");

/* выводим ссылку на скачивание */
echo "
<a href=\"get_file.php?key=".$random."&id=".$song_id."\">Скачать</a>
";

/* выводим сообщение об особенностях работы */
echo "
<br><font size=\"1\" color=\"red\"><b>Внимание!</b></font><font size=\"1\"> Ссылка действует в течении 1 часа и только для вашего IP адреса</font>
";


далее мутим это

<?
include 'config.php';

$result = mysql_query("select * from songs where id = '$id' limit 1");
$f=mysql_fetch_array($result);

$result = mysql_query("SELECT * FROM `download` WHERE `key` = '".$_GET['key']."' AND `ip` = '".$_SERVER["REMOTE_ADDR"]."'");

if(mysql_num_rows($result) == 1)
{

   if(!file_exists($key.$f['psong']))
   {

$exp = explode('/',$f['psong']);

       $filename = $exp[1];
       $file = "download/".$filename; //путь сменить!
       $size = filesize($file);

       header("Content-Type: application/force-download");
       header("Content-Transfer-Encoding: binary");
       header("Content-Length: $size");
       header("Content-Disposition: attachment; filename=\"$filename\"");

       readfile($file);
   }
   else
   {
       header("Location: views=".$id);
   }
}

else
{
   header("Location: error.php");
}
?>
Что бы Ктулху не воскрес, подпишись на RSS

question


MISHA

Quote from: question on January 16, 2011, 11:21:01 PM
http://www.htaccess.net.ru/doc/htaccess/order.php - вот этим способом можно сделать что-то такое?
именно этим способом врятли, но через сам .htaacess точно можно как то сделать
Что бы Ктулху не воскрес, подпишись на RSS

question

Да. В общем те, кто разбирается в .htaacess - просьба помочь. Нужно сделать, чтобы при открытии ссылки оригинала изображения была 403 ошибка.

Makc666

В корень папки albums положите файл .htaccess с кодом:

<FilesMatch "orig_(.*)\.(jpg|jpeg|png|bmp|gif|tiff)$|^$">
  Order allow,deny
  Deny from all
</FilesMatch>


Можно и не указывать расширения насильно:
<FilesMatch "orig_(.*)\.(.*)$|^$">
  Order allow,deny
  Deny from all
</FilesMatch>


Единственное что, если я не ошибаюсь, это, если сама галерея обращается к этим файлам по прямым ссылкам, то доступ она тоже не получит.
Но это нужно уточнять.

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
http://www.htaccess.net.ru/doc/Redirect/Redirect.php
http://dle-news.ru/tips/1164-zaschita-papok-skripta-ot-zapuska-storonnih-skriptov.html

question

Большое спасибо за решение.
P.S. Сорри, что не по теме, скажите пожалуйста, существует ли на форуме тема, в которой можно оставить свои предложения для разработчиков скрипта?

Makc666

Quote from: question on January 23, 2011, 09:44:48 PM
Большое спасибо за решение.
Пожалуйста.

Quote from: question on January 23, 2011, 09:44:48 PM
P.S. Сорри, что не по теме, скажите пожалуйста, существует ли на форуме тема, в которой можно оставить свои предложения для разработчиков скрипта?
Раздел форума:
http://forum.coppermine-gallery.net/index.php/board,7.0.html

Donfryazino

А можно сделать редирект, например на главную страницу галереи. И этот файлик записывать в каждую папку с оригиналами. В итоге получится, что человек хочет посмотреть прямо на оригинал, а его перекидывает на главную. Очень удобно  :)