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

Весь код проекта не нужно палить фрилансерам.