@wiggy

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

У нас есть идея веб-проекта (внутренний инструментарий с доступом со всех обьектов для нас, строителей), даже накидан костяк прошлым программистом и кое-как работает. Прошлый чел слился с проекта не пофиксив свои косяки, не доделав многого, поэтому мы переписываем договор, дабы обезопасить себя от такого поведения и нанимаем нового. Как обезопасить себя от бекдоров, слива инфы и прочего недобросовестного отношения программиста-фрилансера? Даже не обезопасить, а именно контролировать, ибо по договору на программисте будет вся ответственность в случае такой нехорошей ситуации.
Идея такая - поднимаем какой-либо version control, куда этот программист пишет. Оттуда автоматом все перекидывается на продакшен сервер, ибо прогер все-равно один. В случае конфликтных ситуаций, подозрений итд, поднимаем логи, диффы и смотрим, был ли злой умысел и дрючим его договором через суд или убеждаемся, что это был взлом и слив по другим каналам.
Так вот, вопрос - правильно ли я понимаю то, как эти системы работают? Можно ли будет посмотреть, когда была сделана правка, приведшая к печальным последствиям? Может ли программист как-то влиять на эти записи и удалить лог именно по спорной записи - т.е. она будет на продакшен сервере, а в логах version control ее не будет и он свалит все на прошлого программиста, мол это до меня было? И, так как система эта с нас - можете ли назвать плюсы и минусы той или иной системы и что именно нам подойдет оптимально для этой задачи? Сам я не айти, разобрался лишь слегка на уровне покупки и запуска линукс сервера на centos.
Идея не моя, но руководство хочет держать разработчика ровно в такой узде.

UPD: да, решили, что это чересчур. Сняли копию файлов и в договоре написали, что в случае спорных вопросов у нас есть право обратиться к этим копиям для сравнения.
  • Вопрос задан
  • 691 просмотр
Решения вопроса 1
aleksand44
@aleksand44
За слив конфиденциальной информации ответственность общепринятая, она как правило уже у всех в договоре есть.
По поводу каких-то косяков кодера непонятно что вы хотите, но звучит ужасно, далеко вы на такой схеме не уедете.
Чтобы код был чистым нанимайте хорошего программиста, а не фрилансера и хорошо платите ему, чтобы он не слился, либо отдавайте разработку сторонней компании.
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
dimasmagadan
@dimasmagadan
Можно попробовать на основе gitflow или схожего подхода:
1 этому разработчику даем доступ только к репозиторию. Доступа к серверу у него нет.
2 настраиваем автодеплой с ветки мастер на живой сервер.

Так все правки видны. Видно кто сделал, когда и зачем.
И нет доступа к серверу. Это плюсы.

Из минусов, нужны будут разработчики, которые умеют работать с гитом, умеют это все настроить. Обычно, чем больше разработчик знает, тем он дороже. Соответственно, проект будет дороже.
Хоть уметь пользоваться системами контроля версий должен каждый уважающий себя программист, фактически дофига кто им не пользуется вообще.
Ответ написан
Комментировать
@awdemme
Без нужной квалификации вы ничего не сделаете.
Логи можно затереть.
Бекдоры запрятать далеко и использовать редко.

Нужен отдельный спец по проверке первого
;)

Крайне сомневаюсь, что чел будет ставить бек доры - это куча лишней работы.
Вы же не банковскую платежную систему пишете в конце концов.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Стоит ли нанимать программиста которому вы заранее не доверяете
если надо весь слив можно организовать очень хитро и не заметно
и без глубокого анализа кода этот слив не засечь
Ответ написан
Комментировать
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Тезисно:
Да, система контроля версий - GIT - подходит под ваши требования. Я думаю, про github вы слышали, но ещё отмечу BitBucket.

Как контролировать? Да никак. Можете до серва не допускать просто, но в таком случае сами должны будете настроить там Git и вебхук для него.

Я искренне не понимаю, что вы хотите найти в логах. Точнее, в коде. Если своего программиста у вас нету, кто будет его читать и понимать, был ли умысел?
Да и ... что такого там может быть? Вот конкуренту идею продать - это реально. А на свой сайт что-то запихнуть... что? и зачем? )

Удалять из логов Git ... Ну, так чтоб бесследно - нет, нельзя .

Флаг вам в руки, конечно, но я бы от предложения так работать отказался. Ещё и с позиции "ты пока подкрути, а мы потом нормального разраба найдём"
Ответ написан
@Fortop
Tech/Team lead
Можно ли будет посмотреть, когда была сделана правка, приведшая к печальным последствиям?

Можно будет, но вам это не поможет решить стоящую перед вами задачу.

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

Зависит от настроек системы контроля версий.
В общем случае - да, может. Что бы не говорили тут вышеотписавшиеся.
И, да, даже в рамках git

И, так как система эта с нас - можете ли назвать плюсы и минусы той или иной системы и что именно нам подойдет оптимально для этой задачи?

Как многократно упомянули git вас устроит.
Но он не закрывает полностью стоящие перед вами задачи.

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


Как обезопасить себя от бекдоров, слива инфы и прочего недобросовестного отношения программиста-фрилансера?

Это три абсолютно разные задачи.
Первая частично покрывается code-review.

Вторая частично покрывается запретом прямого доступа к production серверу.

Третья вообще лежит вне рамок технических решений.
Ответ написан
Комментировать
Mesuti
@Mesuti
Рассматривали ли Вы систему GIT там как раз есть система логгирования изменений в файлах.
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Вам нужен SVN. Не git, как тут все наперебой советуют (возможно уже и не знают про другие VCS), а именно SVN. Почему?
SVN предназначен для централизованного хранения - и если нужно выдать доступ к части проекта, это легко делается
SVN не имеет возможности править лог
От бэкдоров можно застраховаться, наняв другого программиста - проанализировать код
От слива информации - не давать доступ ко всему проекту (что, кстати в GIT невозможно - Git изначально делался под OpenSource проекты)
От недобросовестного отношения - только контроль, постоянный контроль за работой. С ежедневной проверкой коммитов
Ответ написан
@Xeli
Как обезопасить себя от бекдоров, слива инфы и прочего недобросовестного отношения программиста-фрилансера?

Грамотно прописать договор, где указать всю степень ответственности. Это к юристу. Проверить имеющийся код на бэкдоры это к специалистам на аудит.
Может ли программист как-то влиять на эти записи и удалить лог именно по спорной записи - т.е. она будет на продакшен сервере, а в логах version control ее не будет и он свалит все на прошлого программиста, мол это до меня было?

Если используете git то это распределенная система где об изменениях узнают все участники проекта, сделанные изменения в мастере сохраняются у всех участников проекта(в зависимости от расграничения прав доступа), в каждом коммите указывается информация об авторе кода + коммиттере человеке который внес этот коммит. Если этот коммит содержал в себе вредоносный код, то очень легко доказать в суде, что это именно этот негодяй его внес, для большего спокойствия используйте цифровую подпись GPG и обяжите работать только через нее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы