Backdoor как гарантия оплаты: безопасная сделка для фрилансера

6 Февраля 2019

Реалии таковы, что фрилансеру могут не заплатить. Но это только в том случае, если фрилансер был не очень осторожен. Тема статьи — как же все-таки получить свои деньги.

intro.jpg

Предоплата — лучшие гарантии

Как говорил легендарный Остап Бендер: «Утром деньги, вечером — стулья». Это классика. К сожалению, если фрилансер молодой и неопытный (то есть без имени) предоплату заказчик ему отправлять не спешит. Опытные фрилансеры могут требовать 100% оплаты и только после этого приступать к выполнению заказа. Здесь и заказчик уверен, что все будет сделано качественно, и сам фрилансер может спокойно выполнять свою работу.

Но ситуации бывают разные:

  1. Фрилансер еще не настолько известен, и заказчик попросту не хочет переводить ему всю сумму.
  2. Полная стоимость работ может быть неясна. Бывают ситуации, когда точно неясно, сколько времени будет потрачено на реализацию технического задания. В этом случае, как правило, договариваются о почасовой оплате. Оговаривается какая-то сумма, которая устраивает обе стороны и назначается куратор со стороны заказчика, который следит за временем выполнения. Схема вполне рабочая. Но подразумевает постоплату.

В таких ситуациях можно просить частичную предоплату. В первом случае — 50% и 50% после окончания выполнения работ, во втором случае — какую-то символическую сумму, чтобы была уверенность в намерениях заказчика. Так ты получишь хоть какие-то деньги и привяжешь к себе заказчика. Ведь заказчики бывают разными.

Биржа — защита от неуверенности

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

Такие биржи — идеальное решение, как для заказчика, так и для исполнителя. Но есть один момент: они берут комиссию за свою работу. Второй неприятный момент — если заказчик представляется юридическим лицом, то такие биржи, как правило, работают без НДС и этот НДС предстоит кому-то заплатить, здесь уже как договоритесь — или пополам, или за счет исполнителя, или же за счет заказчика (что бывает редко).

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

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

Не отправляй исходники

Не отправляй исходники до получения оплаты. Сделал работу, откомпилировал, показал результат, получил деньги, отправил исходники. Это единственная правильная последовательность.

Backdoor

Остался тот самый костыль, который спасет твои деньги, даже если все предыдущие советы не работают:

  1. Заказчик не хочет отправлять предоплату по тем или иным причинам.
  2. Заказчик (или ты) не хочет использовать биржу, чтобы не платить комиссию или НДС
  3. Невозможно не отправлять исходники, например, когда тебя просят «допилить» PHP-код или заказчик требует удаленной работы на его машине. Последнее должно, кстати, тебя остановить вообще от работы с таким заказчиком или только по предоплате.

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

PHP-кодеры просто обязаны иметь свой VDS для размещения на нем своих работ. К тебе обращается заказчик, ты все работы выполняешь на своем VDS и переносишь на сервер заказчика уже после оплаты.

Но такое возможно не всегда. Иногда к тебе обращаются, чтобы доработать уже существующее PHP-приложение. Понятно, что такие работы выполняются сразу на сервере заказчика. Но что если он не заплатит? Не нужно дожидаться, когда это произойдет и он сменит все доступы.

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

Все достаточно просто: функция обращается к какому-то файлу, желательно, удаленному, в котором будет какое-то значение, например, 1 в случае оплаты и 0 в случае, если оплата не получена.

Можно хранить это значение и локально, например, где-то в базе данных, но обрабатывать уже после предполагаемой даты оплаты: получаем дату, если она меньше предполагаемой даты оплаты, пусть код работает, как обычно, если дата оплаты уже наступила, проверяем значение из базы данных: если оплаты нет, тогда вызываем инструкцию die().
При желании можешь вызвать die() с каким-то текстом, но текст лучше не хранить локально, а загружать со стороннего сервера — чтобы по нему нельзя было вычислить твою закладку.

PHP-код нужно кодировать, чтобы заказчик сам не мог изменить его. Для этого есть родное решение — Zend Guard. Да, его можно раскодировать, но это требует определенной квалификации — если у заказчика был PHP-кодер такого уровня, он не обращался бы к тебе. Если «зазенденный» код не выполняется на стороне заказчика, код backdoor можно замаскировать в недрах библиотечных функций движка заказчика. Главное подальше спрятать «закладку», чтобы ее нельзя было удалить, по крайней мере, быстро.

Что делать дальше, ты знаешь:

  1. Ждать оплаты
  2. Если оплата получена, модифицировать значение в БД или в файле и по возможности удалить код (хотя если ты еще планируешь работать с этим заказчиком, можно этого и не делать — хотя бы до тех пор, пока не будешь в нем на 100% уверен).
  3. Если оплата не получена, ничего не делать — после определенной даты выполнение кода будет остановлено инструкцией die().

Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent