Найти в Дзене
Мысли вслух

Как обезопасить плоды своего интеллектуального труда от недобросовестного заказчика?

Оглавление

Нередко попадаются статьи или комментарии людей, которые выполняли какую-то работу - писали программу, делали сайт, продвигали сайт и т.д., и были обмануты клиентами - результаты работы были переданы клиенту, а клиент работу не оплатил. Обидная ситуация, особенно, когда много времени и сил было потрачено на решение задачи.

Мне не раз задавали вопросы, что же делать? Как обезопасить свой труд?

Как же можно обезопасить себя?

По своей личной практике скажу, что я вижу только 2 варианта:

1. Брать 100% предоплаты за работу;

2. Делать закладки в коде и не давать всех ключей клиенту до полной оплаты.

Первый вариант очень спорный и неразумный, поскольку может оказаться так, что, взявшись за работу, не сможешь её выполнить - заболел, возникли какие-то личные проблемы или что-то еще... Со стороны клиента тоже неразумно отдавать 100% суммы в качестве предоплаты за работу, которая может быть не выполненной.

Остается вариант с закладками. Смысл закладки не в том, чтоб что-то поломать, а в том, чтоб не позволить использовать плоды именно Вашего труда - при отказе клиента оплачивать выполненную работу, деактивировать то, что Вы сделали.

Предположим, что Вам заказали решить какие-то проблемы с операционной системой, автоматизировать какие-то задачи. С разработкой сайтов данный способ различий не имеет.

Я решал задачу так: находил какой-то каталог в системе, который точно не будет чиститься никакими чистильщиками, который находится не на поверхности и в котором довольно много файлов или вложенных каталогов. В этом каталоге размещал файл, по названию похожий на системный (например, manifestcon.cfg). В этом файле, вперемежку со всякой чепухой, имитирующей системную информацию, находятся данные для авторизации - логин и пароль. Эти логин и пароль (в виде hash-строки) для авторизации в почтовом ящике.

Скрипт, при запуске, проверяет наличие этого файла. Если файла нет, то дальнейшее не работает. Если файл есть, подтягиваются данные авторизации и скрипт периодически проверяет почтовый ящик. При получении нового письма, сравнивает, например, тему с командным шаблоном - если находится совпадение, то выполняется необходимая операция. Одним из заданных действий может быть такое: если тема совпадает с "Проект для ООО Рога и копыта оплачен полностью", то загрузить с какого-то адреса скрипт, который скачает и заменит файлы с закладками на файлы без закладок и удалит все лишнее - файл manifestcon.cfg и т.д.

Можно поставить иные ограничения - работоспособность до определенной даты или определенное количество дней, месяцев, лет...

При закладках важно использовать 2 принципа:

1. Не навреди! - Грош цена будет Вам, как специалисту, если плод Ваших трудов будет вредить заказчику, нарушать работоспособность его систем, к которым Ваша работа отношения не имеет (если только это не является целью. Помните: вирусописательство и подобная деструктивная деятельность - наказуемые деяния и здесь таковые не рассматриваются).

2. Легкое изъятие всех закладок, если клиент честно с Вами рассчитался.

Вы можете сделать проект без закладок и разместить на некоем ресурсе, для того, чтоб можно было его скачать и установить.

Скачать чистый вариант проекта можно, например, так (с помощью PowerShell):

$download_url = "http://site.ru/file.zip"

$local_path = "C:\windows\temp\file.zip"

$WebClient = New-Object System.Net.WebClient

$WebClient.DownloadFile($download_url, $local_path)

Expand-Archive $local_path -DestinationPath C:\Unzip\

Ну, а что делать дальше с распакованными файлами - это зависит от Вашего проекта - удалить ненужные файлы, заменить файлы с закладками и т.д.

Если система открыта для доступа из-вне, можно активировать механизм обновления проекта на свободный от закладок, путем, например, проверки наличия файла по какому-то адресу или получения письма с определенной темой. Так же, можно 1 раз в сутки загружать некий файл, в котором будет, к примеру, одна строчка, которая будет либо пустая, либо в ней будет указан адрес для загрузки проекта.

Если система закрыта для доступа из-вне, можно в недрах системных каталогов разместить, например, архив с чистым проектом. Демонстрационный проект может проверять наличие какого-то файла-флага и быть ограниченным по времени, например, в 1-2 месяца, по истечению которых, если не будет обнаружен файл-флаг, проект будет деактивирован автоматически.

Файл-флаг можно прислать заказчику, в случае исполнения им своих обязательств, и объяснить, где его разместить.

Защита труда по продвижению сайта

Если Вы беретесь за продвижение сайта, Вам понадобятся разные инструменты - как минимум это консоль вебмастера и консоль с показателями метрик.

Для проекта продвижения можно создать отдельные аккаунты для необходимых систем и заказчику отсылать только отчеты. При успешном завершении и оплате услуг, передать все данные авторизации заказчику. Для того, чтоб не было разночтений, в договоре сразу и указать эти особенности сотрудничества.

Что касается самого сайта, так ничто ведь не мешает сделать серию резервных копий до начала работы - начальное состояние сайта. Если заказчик не захочет оплачивать работу, можно будет сделать резервную копию сайта со своими изменениями и откатить сайт на начальное состояние. Предупреждение заказчика об откате сайта назад при неоплате работы, обычно подводит заказчика к мысли полного исполнения своей части договора.

Как защититься клиенту?

Еще один важный аспект - защита интересов клиента. Не мало организаций и частных лиц пренебрегаю элементарными мерами защиты, а потом начинают плакать, что какой-то фрилансер их обманул.

Защитить себя (может не полностью, но минимизировать риск потерь) можно с помощью следующих методов:

1. Всегда заключайте договор в письменной форме - даже географическая удаленность этому не помеха.

2. Всегда составляйте четкий проект, с разбивкой по контрольным этапам. Так Вы сможете проверить работоспособность проекта, контролировать его реализацию и с чистой совестью оплачивать каждый этап, если это предусмотрено особенностями проекта или договора.

3. Всегда, по возможности, делайте резервные копии своих данных и реализуемого проекта - в случае проблем, Вы сможете откатить систему до работоспособного состояния. В случае, если исполнитель, по каким-либо причинам, не сможет продолжать или завершить проект, Вы сможете на этот проект пригласить другого исполнителя и завершить, а не делать с самого начала.

Напоследок

Способы защиты проектов зависят от особенностей самих проектов и особенностей взаимоотношений. Не надо пренебрегать защитой своего интеллектуального труда - пока Ваш труд не оплачен, он остается исключительно Вашей собственностью. Всегда учитывайте возможность негатива. Может быть очень обидно, когда Вы трудились несколько дней, недель или месяцев, а Вам говорят, мол, нам кажется, что того, что мы заплатили, вполне достаточно за Вашу работу - на большее не надейтесь.

Надеюсь, что моя статья кому-то поможет не быть обманутым очередным недобросовестным заказчиком или исполнителем.

Давайте будем честны по отношению друг к другу и тогда, возможно, необходимость делать закладки отпадет вовсе (иногда хочется быть немного идеалистом).

А как Вы защищаете плоды своего интеллектуального труда? Поделитесь в комментариях.