Перейти к публикации

Защищаем загруженные файлы и картинки


Рекомендованные сообщения

Думаю все знают как нынче новости публикуются, метод копипаста процветает, за частую и грабберы надоедают выдерая с сайта новости и картинки.

Придумал способ как можна защитить картинки и файлы, а именно сделать их немного "особыми".

По стандарту, загруженный на сервер файл примет имя (к примеру):

1232650977_banner.jpg

где 1232650977_ - префикс, который даётся файлу (и картинке также) при загрузке на сервер.

Я предлагаю видоизменить именно этот префикс так чтоб он принял вид (тоже пример):

dle-news.ru_hbb6iwntu_banner.jpg

где вместо dle-news.ru будет доменное имя вашего сайта, _hbb6iwntu_ - рандомный код (символьный, не только численный), ну и banner.jpg - имя фашего файлика.

Для это нужно в engine/inc/files.php

Найти:

		$file_prefix = time() + rand( 1, 100 );

		$file_prefix .= "_";
и заменить на:
/*--------------------------------------------------*/

$symbols = array(

"a","b","c","d","e","f","g","h",

"i","j","k","l","m","n","o","p",

"q","r","s","t","u","v","w","x",

"y","z","1","2","3","4","5","6",

"7","8","9","0",);

$symbols_num = count($symbols);

for ($sa = 0; $sa < 9; $sa++)

	   {

		 $sumb .= $symbols[rand(0, $symbols_num)];

	   }

$symbol_pref = $sumb;

$file_prefix = $_SERVER['HTTP_HOST']."_".$symbol_pref."_";

/*--------------------------------------------------*/

Приятного использования :)

Ссылка на сообщение
Поделиться на других сайтах

}|{OPA, Совсем не понял как твой способ защищает тект и картинки.

Читай лучше тут: http://forum.dle-news.ru/index.php?showtop...%F2%E8%ED%EA%E8

Ссылка на сообщение
Поделиться на других сайтах

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

А если ещё в /engine/inc/makethumb.php

Найти это:

$watermark_x = $image_width - $margin - $watermark_width;

$watermark_y = $image_height - $margin - $watermark_height;
и заменить на это:
$watermark_x = rand($margin, $image_width - $margin - $watermark_width);

$watermark_y = rand($margin, $image_height - $margin - $watermark_height);

То место наложения вотермарки будет рандомным и тогда копипастеры которые накладывают свой вотермарк на ваш отсыпятся очень быстро.

Ссылка на сообщение
Поделиться на других сайтах

Насчёт рандома - бред.

Картинку будет уродовать. Я посмотрю какой толк будет от влепленного на какое-нибудь важное место ватермарк)))

Насчёт картинки - что мешает грабберу пересохранить её? (что обычно и бывает если картинки ссылаются не на Ваш сервер).

А если они ссылаются на Ваш - то смысл в данном способе?Итак видно куда ведёт картинка :)

Кстати насчёт изменения $file_prefix = time() + rand( 1, 100 ); - ещё более глупая идея.

Вы рушите псевдоуникальность. Ибо время уникально, а вот набор символов имеет менее стойкую уникальность.

Изменено пользователем IT-Security
Ссылка на сообщение
Поделиться на других сайтах

А если просто сделать два блока слоями? На первом блоке (div) размещается новость. А вторым слоем прозрачный блок растянутый на всю площадь новости который бы содержал только служебную инфу т.к. Другие новости по теме, просмотры, кто добавил и т.д.

Тогда в новости тупо вообще ничего не выделить будет не текст ни картинки. А каждый раз лезть в код и копатся чтоб что то вытянуть не каждый станет заморачиватся.

мне вот больше интересно как так делают что вот из кода сайта вытягиваешь какой то текст. Он в коде выглядить нормально. Вставляешь его в блокнот а он как то вот так вот отображается.

На#а та%я г^(мко п*$чет ур$$%^ла в р@@ку мя^&к

Ссылка на сообщение
Поделиться на других сайтах

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

Как - есть определённые байты, который носят информационный характер. EXIF например.

Там хранятся данные о камере и т.п.

Вот там можно и спрятать фразу.

Ссылка на сообщение
Поделиться на других сайтах

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

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

Ссылка на сообщение
Поделиться на других сайтах

Можно ещё вариант 1 рассмотреть.

По идее когда работает парсер, то он шлёт User-Agent...

Всякие PHP можно сразу нафиг посылать.

Ссылка на сообщение
Поделиться на других сайтах

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

Встроенный импорт в DLE, легко распознает и берет новости при правильной маске поиска. Для этого в маске есть тег {skip}

По идее когда работает парсер, то он шлёт User-Agent...

Встроенный импорт в DLE, шлет агента браузера пользователя, т.е. но ничем не отличается от обычного посетителя страницы.

Если честно я хотел сделать импорт и возможность запрета чтобы DLE не мог брать новости если запрещено в настройках другого сайта. Импорт я сделал, а сделать защиту от собственного же граббера мне если честно не удалось. Т.к. он обходит редиректы, обладает мощной маской для поиска полных новостей, маскируется от пользователя и многое другое. Такие вот дела :(

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...