Захист flash-роликів

20:44 15.02.2007

В п’ятнадцатому номері своєї розсилки Macromedia Flash: всё что вы хотите о нём знать, що вийшов наприкінці минулого року, я опублікував свою статтю “Захист flash-роликів”. Яку пропоную зараз вашій увазі, думаю дана тема вас зацікавить.

Прочитати статтю Защита flash-роликов на російській мові ви можете в архіві розсилки, зараз же презентую україномовну версію статті.

Якщо ви займаєтеся флеш розробкою, то ви могли задумуватися над тим, як поставити захист на свій флеш-ролик, щоб його не змогли переглянути локально чи на іншому сайті, щоб він працював виключно на вашому сайті.

Дана тема дуже цікава. І існують методики захисту флешек, одну з яких я розгляну в даній статті. Але потрібно розуміти, що будь-які хитрощі в спробі обмежити відвідувача сайта в збереженні та перегляді флешек локально обходяться. Усе можна взломати - це лише питання знань і часу. Так що перед використанням захисту потрібно визначиться з цілями - від кого ви хочете захистити вашу флешку, і використовувати адекватний захист.

Захист від імпорту, що з’явився в ранніх версіях флеша, до захисту як такого віднести не можна. Він ламається дуже просто (шляхом заміни потрібних байт у флеш файлі), та й існують відповідні програми, що легко цей захист знімають. Більш складні методики, про одну з який я розповім, пропонують більш серйозні рівні захисту. І в цьому випадку процес ламання складніше банального “забрати захист від імпорту”, але при наявності знань і гідного інструментарію в руках професіонала ніякі захисні механізми не врятують. Тому потрібно використовувати дуже хитрі (й морочні) методики, щоб захистити свої флешки. Як я вже сказав, потрібно визначитися з цілями захисту.

Одним з методів захисту є перевірка URL сайта. Для заборони запуску флешки локально чи на іншому сайті.

Для цих цілей використовується наступний код. Це приклад алгоритму захисту при перевірці на адресу сайта.

У першому кадрі флешки можна вставити мувікліп з перевіркою, з наступним кодом:

onClipEvent (load) {
 if (_url != "http://mlfun.org.ua/flash.swf") { // if path is incorrect
  stop();
  // повідомлення в текстовому полі message (в тому ж першому кадрі)
  _root.message = "Ви запускаєте флешку не з http://mlfun.org.ua";
 }
 else { // path is OK
  GotoAndPlay(2);
 }
}

Чи можна у випадку некоректного шляху перейти на кадр 2, де знаходиться напис “Хакерам вхід заборонений” і “stop();”. А у випадку коректного - перейти наприклад на кадр 3.

Щодо захисту коду самої флешки, щоб його неможливо було підглянути (і скопіювати).

Як я вже сказав, усе ламається. Мені практично не потраплялися флешки які не можна було б витягти із сайта і запустити в себе локально (як би не намагалися їхні автори), тому що всі захисти можна обійти. Самим реальним методом захисту є прив’язка до скрипта на сайті. І вже на perl, php чи ін. розробляються захисні механізми. Що вже виходить за рамки однієї лише флеш технології.

Код перевірки на урл ламається без особливих проблем - при наявності відповідних знань. На флеші можна ще зробити перевірку на кількість байт ролика (з врахуванням усіх перевірочних кодів), і якщо хакер видалить частину коду (де була перевірка на урл), то нічого не заробить (подібна методика останнім часом одержала поширення). Але і це ламається. У мене все ламається ;-) .

Тому крім варіанта із серверним скриптом, а також варіанта з флешкою, котра усі свої частини “хитро” довантажує з сервера (тобто “розподілена флешка”), ніщо не дасть достатніх гарантій проти взлому.

Але приведений мною вище код цілком підійде проти ламерів.


4 відповідей на “Захист flash-роликів”

  1. halkfild каже:

    так цікава стаття, але мені здаеться якщо ми бачимо цю флешку, то вона вже завантажена на наш компьютер а це означає що зберегти її уже просто.. :|

  2. MustLive каже:

    Від збереження флешки цей метод не захищає, про це я писав. Це вже справа техніки, дістати флешку з кеша браузера, або користуючись нормальними браузерами (Мозіла, Фаєрфокс, Опера) зберігти спокійно флешку - ці браузери при збереженні сторінки, також зберігають і флешку (на відміну від ІЕ, котрий цього не вміє і для нього треба спеціальні додатки встановлювати).

    Основна задача цього методу - не дати продивитися флешку ніде окрім сайта автора. Тобто зберігти то ти збережеш, але ні локально ні на жодному іншому сайті в інтернеті ти продивитися її не зможеш (варінт зі створенням локального хоста з іменем, який співпадає з іменем сайта флешки я не розглядаю, це морочний варіант, і для кожної флешки з подібним захистом запаришся створювати локалхости). Тобто це захист від огляду флешки за межами основного сайта.

  3. Створення сайтів каже:

    Цікаво а від флеш-дебагерів такий метод захистить флеш-ролик? :?

  4. MustLive каже:

    Флеш-дебагери призначені для інших задач, ви явно мали на увазі флеш-декомпілятори. Дебагер, вбудований у флеш-плеєр (в редакторі флеш або в дебаг-версії стаціонарного плеєра), призначений для відладки програм, тобто це інструмент для флеш розробника.

    Флеш-декомпілятор - це інструмент для отримання вихідного коду флешки (з її байт-коду). Від декомпіляторів цей метод не допоможе (взагалі нічого не допоможе, є декілька методів, але вони дають невеликий ефект), тому вихідний код флешки можна легко отримати. Даний же метод призначений для прив’язки флешки до сайту, тобто це захист від огляду флешки за межами визначеного сайта. До того ж, це простий метод. За більш складними і надійними методами захисту флеш-файлів можна звернутися до мене.

    P.S.

    До речі, вашій студії потрібно більше приділяти увагу безпеці. Тому що як я подивився, на розроблених вами сайтах є уразливості.

Leave a Reply

You must be logged in to post a comment.