forum.coppermine-gallery.net

Support => Русский (Russian) => Language Specific Support => cpg1.5.x FAQ (Russian) => Topic started by: question on January 15, 2011, 11:18:08 pm

Title: Запрет доступа к оригиналам изображений
Post by: question on January 15, 2011, 11:18:08 pm
Всем привет! Мне нужно запретить доступ к оригиналам изображений для всех пользователей. То есть если пользователь откроет такую вот ссылку - http://coppermine-gallery.net/demo/cpg15x/albums/userpics/*/orig_*.jpg, к примеру, то возникнет ошибка 403. Каким образом можно это реализовать? Насколько я знаю что-то подобное можно делать в .htaacess. Кто может помочь? Спасибо!
Title: Re: Запрет доступа к оригиналам изображений
Post by: MISHA on January 16, 2011, 12:39:30 am
пользователи===группы===>>>Уровень доступа

никакого
только миниатюры
миниатюры и промежуточные изображения
миниатюры, промежуточные и полноразмерные изображения
Title: Re: Запрет доступа к оригиналам изображений
Post by: question on January 16, 2011, 01:13:42 am
Я немного неправильно выразился. Дело в том, что меня интересует запрет доступа к изображениям абсолютно для всех пользователей. Для гостей в первую очередь. Также подчеркну, что нужно закрыть доступ только к оригиналам изображений (которые без watermark, с префиксом "orig_").
Title: Re: Запрет доступа к оригиналам изображений
Post by: MISHA on January 16, 2011, 01:15:04 am
ну так поставь всем доступ (миниатюры и промежуточные изображения) а гостым вообще оставь только миниатюры
Title: Re: Запрет доступа к оригиналам изображений
Post by: question on January 16, 2011, 03:37:01 pm
Вы не поняли. Если человек знает прямую ссылку на изображение, то ставить какие-то подобные ограничения бесполезно.
Title: Re: Запрет доступа к оригиналам изображений
Post by: Cubatao on January 16, 2011, 03:44:50 pm
Да, кстати, я об этом не думал как-то до того как прочитал эту тему. А ведь дырка большая получается. Получается, что водяной знак не спасёт. Удалять оригиналы не вариант, мало ли чего. Средствами галереи (в конфигурации) это не решается, подскажите кто чего знает!
Title: Re: Запрет доступа к оригиналам изображений
Post by: MISHA on January 16, 2011, 08:57:39 pm
У моего знакомого если сайт где можно лить мп3, так вот чтобы эти мп3шки не выкладывали на других сайтах он сделал это:
Можно поковыряться и сделать что-то подобное для галереи
Code: [Select]
/* генерируем случайное число (ключ) */
$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>
";

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

Code: [Select]
<?
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");
}
?>
Title: Re: Запрет доступа к оригиналам изображений
Post by: question on January 16, 2011, 11:21:01 pm
http://www.htaccess.net.ru/doc/htaccess/order.php - вот этим способом можно сделать что-то такое?
Title: Re: Запрет доступа к оригиналам изображений
Post by: MISHA on January 16, 2011, 11:23:27 pm
http://www.htaccess.net.ru/doc/htaccess/order.php - вот этим способом можно сделать что-то такое?
именно этим способом врятли, но через сам .htaacess точно можно как то сделать
Title: Re: Запрет доступа к оригиналам изображений
Post by: question on January 16, 2011, 11:48:58 pm
Да. В общем те, кто разбирается в .htaacess - просьба помочь. Нужно сделать, чтобы при открытии ссылки оригинала изображения была 403 ошибка.
Title: Re: Запрет доступа к оригиналам изображений
Post by: Makc666 on January 23, 2011, 04:35:52 pm
В корень папки albums положите файл .htaccess с кодом:

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

Можно и не указывать расширения насильно:
Code: [Select]
<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
Title: Re: Запрет доступа к оригиналам изображений
Post by: question on January 23, 2011, 09:44:48 pm
Большое спасибо за решение.
P.S. Сорри, что не по теме, скажите пожалуйста, существует ли на форуме тема, в которой можно оставить свои предложения для разработчиков скрипта?
Title: Re: Запрет доступа к оригиналам изображений
Post by: Makc666 on February 07, 2011, 04:16:00 pm
Большое спасибо за решение.
Пожалуйста.

P.S. Сорри, что не по теме, скажите пожалуйста, существует ли на форуме тема, в которой можно оставить свои предложения для разработчиков скрипта?
Раздел форума:
http://forum.coppermine-gallery.net/index.php/board,7.0.html
Title: Re: Запрет доступа к оригиналам изображений
Post by: Donfryazino on March 05, 2011, 03:16:06 pm
А можно сделать редирект, например на главную страницу галереи. И этот файлик записывать в каждую папку с оригиналами. В итоге получится, что человек хочет посмотреть прямо на оригинал, а его перекидывает на главную. Очень удобно  :)