Я уже больше 8 лет продаю свои программные продукты, и первые лет 5 основной проблемой была даже не реклама, а защита от хакеров. Не я один замечал резкую «просадку» продаж при выходе взломанной версии. — просто почитайте SWRUS или раздел Shareware на RSDN.
Я не буду касаться этичности или законности взлома программ, а расскажу о решении, которое при копеечной стоимости полностью избавило меня от взломов. Думаю, оно применимо для 90% десктопного софта.
Суть проста: перенести данные пользователя к себе на сервер, тогда взлом десктопного инструмента потеряет смысл. Ломать онлайновую систему — задача посложнее, кроме того я легко могу улучшать ее защиту по мере необходимости, что невозможно в случае разошедшейся по торрент-трекерам инсталляхи.
Первые варианты защиты использовали FTP, но проблемы возникали в моменты пиковой нагрузки: не всегда канала сервера хватало на обслуживание аплоада. Кроме того, возникал вопрос целостности файлов — бывали ошибки, что в случае со сжатыми данными попросту «уничтожало» их.
С точки зрения безопасности, свой FTP-сервер может настроить и «злоумышленник», поэтому в итоге появилась комбинация из онлайнового API на моем сервере + хранилище для больших бинарных данных. Хранилище по отдельности, без своего сервера, я тоже не стал бы использовать — при определенном уровне знаний можно и его сделать, в связке же задача многократно усложняется.
Первое время я очень боялся, что данные будут непрерывно расти и со временем я буду переплачивать за защиту. Но по факту оказалось, что при адекватном сжатии и структуре данных объемы — не космические. Сейчас у меня — около 150 гигабайт пользовательских данных, что в случае с Amazon S3 обходится меньше, чем $20 в месяц. Смешная сумма за 100% защиту, не правда ли?
Почему Amazon S3? Это — единственный вариант, который выдержал проверку временем и нагрузкой. Вот уже года три — полет нормальный. Жалоб — нет, проблем — тоже. Кроме того, S3 обеспечивает целостность данных: в бакете не может быть криво залитых файлов. Они там либо есть на 100% и с правильными чексуммами, либо — нет.
Вопросы по скорости доступа к онлайновым данным решаются локальным кешированием — человек и не замечает, что данные — в онлайне. Синхронизация происходит фоном и на работе десктопного инструмента никак не влияет.
Из бонусов:
1. Появилась возможность работы на нескольких компьютерах без переноса файлов. Пользователь просто приходит домой с работы — и все файлы уже под рукой. Не нужно таскать с собой файлы и заботиться об их синхронизации.
2. Появилась возможность легко решать технические вопросы, в том числе и в саппорте. По е-мейлу клиента мы можем в случае необходимости и с согласия клиента посмотреть на его данные, в том числе и на историю их изменения.
3. Появилась возможность изменять форматы данных без напряга для пользователя. За последние 3 года мы уже раза три меняли форматы и структуру, причем каждый раз «прозрачно» для пользователя — люди ничего не замечали. А для нас это — огромный бонус, поскольку поддержка старых форматов оборачивается со временем большой головной болью.
4. Появилась возможности делать непрерывные бекапы — пользователь может «откатиться» на любое состояние своих файлов, с самого первого использования продукта. Очень приятно и пару раз реально выручало.
Может возникнуть вопрос доверия: ведь мы теперь теоретически можем «копаться» в данных пользователя без его ведома. На практике такого вопроса не возникало: никто не жаловался, параноиков не было.
В общем, рекомендую.
Автор: MaxPastukhov