Преамбула:
Буквально на днях закончил один прожект который делался конечному клиенту через посредника веб-студию. Т.к. с моим непосредственным заказчиком (веб-студией) я имел первый опыт (мозготрах) работы, то зародились сомнения, а не кинут ли (тьфу х3, пока такого ни разу не случалось).
В общем решил хоть как то предохранится от возможного конфуза.
Проблема:
По быстрому/простому включить в проект блокировку, в случае если клиент не расплатится за заказ в оговоренный с ним срок или прихватизирует проект на финальном этапе разработки.
Решение:
Идея думаю далеко не нова, но как говорится, свой "велосипед" ближе к телу :) (давно хочу обзавестись железным великом, да все никак да не эдак).
Решил включить код, который бы обращался по определенному адресу и запрашивал определенный ресурс и исходя из полученного результата "блокировал" флешку.
Вначале хотел запрашивать URLLоader-ом в качестве ресурса текстовый файл или php-скрипт который выдавал например слово "trusted", но из-за танцев вокруг секьюрности решил отказаться от этой затеи и воспользоватся "добрым" Lоader-ом.
Итого:
1. ресурс - gif-файл 1х1 пиксель (35 байт);
2. хостинг - публичная папка Dropbox-а (если решите воспользоватся этим сервисом, могу прислать инвайт на регпочту, обоим к положенным 2 гигам по 250 метров накинут);
3. выбрана схема блокировки по наличию ресурса, а не по его отсутствию (т.к. флешку могут просматривать локально, внутри ethernet, проблемы с хостингом и т.п.).
Реализация:
Защита достаточно тривиальна и прошаренный заказчик её в 5 сек обойдет, отредактировав байт код или декомпилировав флеху (от этого может в какой то степени спасти укус хорошего обфускатора secureSWF).
Буквально на днях закончил один прожект который делался конечному клиенту через посредника веб-студию. Т.к. с моим непосредственным заказчиком (веб-студией) я имел первый опыт (мозготрах) работы, то зародились сомнения, а не кинут ли (тьфу х3, пока такого ни разу не случалось).
В общем решил хоть как то предохранится от возможного конфуза.
Проблема:
По быстрому/простому включить в проект блокировку, в случае если клиент не расплатится за заказ в оговоренный с ним срок или прихватизирует проект на финальном этапе разработки.
Решение:
Идея думаю далеко не нова, но как говорится, свой "велосипед" ближе к телу :) (давно хочу обзавестись железным великом, да все никак да не эдак).
Решил включить код, который бы обращался по определенному адресу и запрашивал определенный ресурс и исходя из полученного результата "блокировал" флешку.
Вначале хотел запрашивать URLLоader-ом в качестве ресурса текстовый файл или php-скрипт который выдавал например слово "trusted", но из-за танцев вокруг секьюрности решил отказаться от этой затеи и воспользоватся "добрым" Lоader-ом.
Итого:
1. ресурс - gif-файл 1х1 пиксель (35 байт);
2. хостинг - публичная папка Dropbox-а (если решите воспользоватся этим сервисом, могу прислать инвайт на регпочту, обоим к положенным 2 гигам по 250 метров накинут);
3. выбрана схема блокировки по наличию ресурса, а не по его отсутствию (т.к. флешку могут просматривать локально, внутри ethernet, проблемы с хостингом и т.п.).
Реализация:
public class TrustChecker { private var _stage:Stage; public function TrustChecker(stage:Stage) { _stage = stage; var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError); loader.load(new URLRequest("http://myurl.com/trust.gif?" + (new Date().getTime()))); } private function onError(e:Event):void { var target:LoaderInfo = e.target as LoaderInfo; target.removeEventListener(Event.COMPLETE, onComplete); target.removeEventListener(IOErrorEvent.IO_ERROR, onError); } private function onComplete(e:Event):void { var target:LoaderInfo = e.target as LoaderInfo; target.removeEventListener(Event.COMPLETE, onComplete); target.removeEventListener(IOErrorEvent.IO_ERROR, onError); // вот тут то можно дать волю своей фантазии для донесения мысли заказчику var shape:Shape = new Shape(); shape.graphics.beginFill(0x000000); shape.graphics.drawRect(0, 0, _stage.stageWidth, _stage.stageHeight); shape.graphics.endFill(); _stage.addChild(shape); } }
Защита достаточно тривиальна и прошаренный заказчик её в 5 сек обойдет, отредактировав байт код или декомпилировав флеху (от этого может в какой то степени спасти укус хорошего обфускатора secureSWF).
Комментариев нет:
Отправить комментарий