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

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

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

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

Previous topic - Next topic

0 Members and 2 Guests 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

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