Как защитить приложение на yii2 от кражи при работе с фрилансерами?
Здравствуйте, у меня такой вопрос. Я заказал разработку веб приложения на yii2, что то типа простой crm. И сейчас встал вопрос доработок, и поиска специалистов для этой задачи. И как я понимаю, любой программист , которому я дам доступ к программе может легко ее скопировать и дальше делать с ней все что захочет: продавать, выкладывать а открытый доступ и т.д. можно ли как защититься от этого?
День добрый.
Нет, нельзя.
Если Вы такой подозрительный, то изучите yii, php, mysql и всё остальное, что использовалось при разработке Вашего приложения и выполните работу самостоятельно.
Это малоэффективно.
Например если я подписал NDA я конечно не буду распространять эту информацию лично.
Но это не мешает выложить ее анонимно на публичный ресурс или продать.
Доказать что это сделал я будет крайне сложно - на грани фантастики.
Если работодатель это крупная структура с хорошим финансированием, своей службой безопасности и штатом юристов - там еще есть какие-то рычаги влияния.
А если работодатель мелкий частник - это просто бумажка не имеющая никакого практического смысла.
На 99% у Вас нет там ничего такого, что можно было бы продать или невозможно было бы написать заново за ту же цену.
Кроме контактов клиентов, которые лежат в базе данных, и доступ к которой Вы ограничиваете.
На 99% у Вас нет там ничего такого, что можно было бы продать или невозможно было бы написать заново за ту же цену.
Ну смотрите - речь идет о CRM.
Вот я бы не отказался от CRM. Вкладывать деньги в разработку - оно мне не надо, сливать свои данные в облако нет желания, покупать дорого.
А если будет утечка кода - какой нибудь программер подкинет недорого исходники, то в чем проблема поднять на своем сервере?
Конечно. Это не та вещь которую можно продать дорого. Просто получил какой-нибудь фрилансер доступ к коду, скопировал проект себе на флешку, и завтра поставил за 10тыс на сервер знакомого - ему как раз нужно было. Или на форуме поделился с кем-то.
Antonio Solo, Ну если это мегапроект - она действительно никому не нужна без документации и поддержки.
А вот если это небольшая CRM без особых наворотов- я бы и себе примерил.
Да хорош. Сколько вероятностей должно сойтись, чтобы знакомому программиста именно в этот момент была позарез нужна СRM, и именно обслуживающая те же задачи, что и у топикстартера?
И обратно, знакомому нужна СRM (она же нужна и до выдачи задачи топикстартером?), у него есть друг-программист, который умеет в СRM, и он будет ждать, пока у друга-программиста не появится заказ на аналогичную систему, чтобы потырить код?
Что же там за уникальные неповторяемые процессы, которые можно вынести на разовый фриланс?
Ну почему же - если адекватная CRM получится, и есть доступ к исходникам, то почему бы не поднять ее на своем сервере? Думаю желающие будут. Т.е именно эта область наиболее уязвима.
Идеальной защиты нет.
И чем лучше защита тем дороже она вам будет обходится.
Есть два эффективных варианта -
Крупные компании в основном защищаются ограничением доступа к коду. Программист работает только с небольшим участком кода, и не представляет как там что устроено в других участках. На небольшом проекте такое очень сложно реализовать.
Можно ограничить коммуникации - никакого доступа в интернет на рабочем месте программиста, и отключенные флешки на компьютере.
Privetetoya, Если говорить о практических советах - то вы вполне можете реализовать второй вариант.
Это не так сложно как кажется, по крайней мере я такое делал без особых проблем.
Для этого вам потребуются только услуги хорошего системного администратора.
Суть реализации -
Берете обычный компьютер, на котором будет работать разработчик, ставите там среду разработки, загружаете туда код, и настраиваете к нему удаленный доступ по RDP.
Разработчик будет подключаться к своему рабочему месту по RDP и работать с кодом.
А вот скопировать он его не сможет. Это собственно задача администратора - настроить компьютер так чтобы подключившийся удаленно разработчик не мог выйти в интернет с этой машины. Не мог скопировать текст через буфер обмена. Банальное ограничение прав.
Подключился к терминалу и работает - пишет код, запускает приложение, но все что не касается работы - мессенджеры, почта, и.т.п все заблокировано.
Сами понимаете что скришотами экрана много кода не утащить, проще свое написать.. Да и вы сможете контролировать процесс.
АртемЪ, спасибо. наверное для моего случая это и правда избыточный способ. но я думал, вдруг есть уже какое то готовое подобное решение/сервис , возможно с каким нибудь хитрым шифрованием, через которое можно работать с удаленными программистами.
Вообще-то можно. Способ называется - шифрование исходного кода.
Можно зашифровать часть core-бизнес логики на конкретный ip/домен и дать фрилансеру доступ на dev-сервер. Если правильно выбрать куски кода, то разработке это не сильно помешает. А сидеть-декодировать никто это не будет, потому что ну-его-нахер.
Поделок в этой области много, я лично сталкивался только с ionCube.