Личные сообщения

Ваши переписки

Логотип сайта
главная правила форум опубликовать полезные сервисы услуги
вход или регистрация обратная связь
Раздел Название темы Ответов Последний
Модули OpenCart Модуль Wholesale Price List 1 svitlo
OpenCart восстановление картриджей в минске 0 Serviceyiq
Софт Advanced SystemCare Pro 8.2.0.795 DC 13.04.2015 (RePack by D ... 1 Sep
Партнерские программы Как зарабатывать максимально много на скачиваниях. Руководст ... 1 Sep
Различные скрипты Скрипт - калькулятор расчета стоимости пластиковых окон 20 leshyi55
FAQ OpenCart Как убрать (index.php?route=common/home) в OpenCart? 16 stavr207
Модули OpenCart Модуль ExcelPort - Product / Category / Customers Excel Expo ... 8 Leksey_G

Мир шаблонов » Полезности, хаки DLE » Доступность - защита файлов в закрытых разделах в DLE
0

Доступность - защита файлов в закрытых разделах в DLE

Доступность - защита файлов в закрытых разделах в DLE


Есть одна лазейка в DLE, которая позволяет скачивать файлы из новости, даже если эта новость находится в скрытом разделе.

В случае, к примеру, с созданием раздела VIP этот вопрос довольно таки актуален.

Давайте для начала рассмотрим ту защиту, которая собственно и не дает нам свободно скачать файл по прямой ссылке /engine/download.php?id=123

Преграда №1.
Настройки групп пользователей. Т.е. скачивать файлы могут только те пользователи, которым это разрешено в настройках группы. Остальные получают ошибку "Access denied".

Преграда №2.
Скорее чисто символическая, защита от не продвинутого пользователя. Проверяется реферер, т.е. файл будет доступен только в том случае, если пользователь кликнул по ссылке на сайте. Но нам же ничего не мешает самому подправить код странички и вставить туда ссылок с любым ID.

А теперь вспомним еще о 2х параметрах, которые так же следовало бы учесть:
Параметр №1.
При добавлении новости, в закладке "доступ" можно определенной группе выставить уровень доступа "запретить просмотр". Но если в новости находится ценный файл который доступен только перечисленным группам, то злоумышленник все равно сможет получить доступ к файлу простым перебором.

Параметр №2.
В настройках групп пользователей в параметре "Доступные разделы" можно перечислить список категорий к которым будет открыт доступ. Получается та же ситуация. Простым методом перебора ID файлов можно будет скачать любой файл, даже не имея доступа в закрытый раздел.


Со вступлением разобрались. Теперь, собственно, решение данной проблемы:

Открыть файл engine/download.php

Найти строку:

$row = $db->super_query ( "SELECT name, onserver FROM " . PREFIX . "_files WHERE id ='$id'" );

Заменить на (Для DLE 9.6 и старше):

$row = $db->super_query ( "SELECT name, onserver, access, category FROM " . PREFIX . "_files f LEFT JOIN ".PREFIX."_post_extras e ON e.news_id=f.news_id LEFT JOIN ".PREFIX."_post p ON f.news_id=p.id WHERE f.id ='$id'" );

if($row['access']){
	$row['access'] = explode(",",$row['access']);
	if(!in_array($member_id['user_group'],$row['access'])) die("Access denied");
}
if($user_group[$member_id['user_group']]['allow_cats'] AND $user_group[$member_id['user_group']]['allow_cats']!='all'){
	$allow_cats = explode(",",$user_group[$member_id['user_group']]['allow_cats']);
	$deny = true;
	if(strpos($row['category'],",")!==false){
		$row['category'] = explode(",",$row['category']);
		foreach($row['category'] as $cat) if(in_array($cat,$allow_cats)) $deny = false;
	}else{
		$row['category'] = intval($row['category']);
		if(in_array($row['category'],$allow_cats)) $deny = false;
	}
	if($deny) die("Access denied!");
}

Для младших версий DLE вставить:

$row = $db->super_query ( "SELECT name, onserver, access, category FROM " . PREFIX . "_files f LEFT JOIN ".PREFIX."_post p ON f.news_id=p.id WHERE f.id ='$id'" );

if($row['access']){
	$row['access'] = explode(",",$row['access']);
	if(!in_array($member_id['user_group'],$row['access'])) die("Access denied");
}
if($user_group[$member_id['user_group']]['allow_cats'] AND $user_group[$member_id['user_group']]['allow_cats']!='all'){
	$allow_cats = explode(",",$user_group[$member_id['user_group']]['allow_cats']);
	$deny = true;
	if(strpos($row['category'],",")!==false){
		$row['category'] = explode(",",$row['category']);
		foreach($row['category'] as $cat) if(in_array($cat,$allow_cats)) $deny = false;
	}else{
		$row['category'] = intval($row['category']);
		if(in_array($row['category'],$allow_cats)) $deny = false;
	}
	if($deny) die("Access denied!");
}

Источник: _http://SanDev.pro/
Поделиться: Понравилась новость? Расскажи друзьям. Поблагодари проект!


Уважаемый посетитель нашего сайта! Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. Спасибо за внимание!

Тегихаки dle, доступность файлов, защита от скачивания
Публикацию посмотрели 783 раз(а) и написали 0 комментариев.

Похожие публикации

 Вывод количество новостей на главной для DLE 9.x - 10.x 
Хак будет направлен на вывод количества новостей на главной странице DLE: 1. Вывод общего количества новостей; 2. Вывод количества новостей за месяц; 2. Вывод количества новостей за неделю; 2. Вывод количества новостей за день;*...
 Шаблон СSS Template 2.0 для DLE 9.8 [Оригинал] 
Дорогие друзья. После длительного перерыва, команда Российской школы CSS и GZweb Interfaces готова представить Вам обновление шаблона CSS Template 2.0. Он позволит не только изучить современные приемы верстки страниц и разработки сайтов, но и...
 Вывод количества новостей в меню (категориях) для DLE 
Очень полезный хак который позволяет вывести в меню общее количество новостей в категории или подкатегории, а также количество новостей добавленных за сегодня. Единственное, что нужно знать для этого - это id категории....
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
разделы сайта

последние комментарии
  • vlados228 01.06.2017
    MUSE ГЕНЕРАТОР. Комплект Adobe ... (12)
    vlados228-фото
    Кто ищет рабочий Muse генератор - скажу сразу, Вы его не найдете)
    То что для его активации требуется активационный ключ, это выдумка.
    На торрентах/форумах/складчинах распространён поддельный Muse генератор, который выпустил сам создатель чтобы запутать тех кто хочет халявы, там как правило в библиотеке лежат файлы одинакового размера по 32мб, которые одинаковы по сути)
    Для тех кому нужна РАБОЧАЯ версия adobe muse пишите мне на почту vladusenkov(собака)yandex(тчка)ру
    Продам за 500р
  • Adidas_kz 01.06.2017
    Бизнес комплект 5.0 250 бизнес ... (11)
    Adidas_kz-фото
    Здравствуйте! Архив защищен паролем, можно пароль
  • meagord 21.05.2017
    Таймеры 2.0 [Adobe Muse] (3)
    meagord-фото
    Присоединяюсь к благодарностям. Почти не нашел места где можно бесплатно найти хороший материал.
    Ваш сайт number 1 .
    Как заработаю первые деньги с помощью информации полученной на вашем сайте обязательно поддержу проект.
    Спасибо Большое.
    winked
  • gushnick 20.04.2017
    Огромная коллекция модулей для ... (2)
    gushnick-фото
    крутой наборчик даже не думал что такие бывают. мульти доставка стала как родная
  • pavel47 04.04.2017
    Генератор продающих и подписны ... (6)
    pavel47-фото
    пере залейте файл выходит сообщение: Такого файла не существует, доступ к нему ограничен или он был удален из-за нарушения авторских прав.
поддержать проект
подписаться на новости
OpenCart
Подписаться на канал RSS Добавить сайт в закладки
популярные публикации
партнеры сайта

рекомендуем
Hosting Ukraine
© 2013-2016 mirshablonov.com