В п’ятнадцатому номері своєї розсилки 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 чи ін. розробляються захисні механізми. Що вже виходить за рамки однієї лише флеш технології.
Код перевірки на урл ламається без особливих проблем - при наявності відповідних знань. На флеші можна ще зробити перевірку на кількість байт ролика (з врахуванням усіх перевірочних кодів), і якщо хакер видалить частину коду (де була перевірка на урл), то нічого не заробить (подібна методика останнім часом одержала поширення). Але і це ламається. У мене все ламається 
 .
Тому крім варіанта із серверним скриптом, а також варіанта з флешкою, котра усі свої частини “хитро” довантажує з сервера (тобто “розподілена флешка”), ніщо не дасть достатніх гарантій проти взлому.
Але приведений мною вище код цілком підійде проти ламерів.