Зависит от договора, если вы не предлагали после выполнения техническое сопровождение в течении определённого времени или он отказался, то вся вина на нём.
Разработчик отвечает за взлом, если он произошёл по его вине (явный бэкдор) либо, если вы не выполнили условия договора.
Способы есть, но вы хотите лишится посетителей? Не повторяйте ошибкой русского сайта оверлокерс, они это сделали и потеряли половину посетителей, теперь этот сайт стал настоящей помойкой, после которой хочется вымыть руки.
Станислав Шендаков, нет, у вас косяки с обозначением свойств в сущностях, наведите там порядок и создайте миграцию, и провалидируйте схему, она не должна выдавать никаких ошибок.
Станислав Шендаков, вам там ответили, и вообще, у вас ужасный код, отформатируйте его по стандарту.
Свойства всегда сверху, методы сгруппированы, конструктор сразу после свойств.
У вас же всё раскидано и размазано по классу, читать не возможно, а конструкт вообще либо в конце класса, либо где-то между методами.
Детали, ну довольно просто, есть так сказать "абстрактный" супер класс Parent, который имеет общие свойства для всех "детей". Некоторые из этих свойств или методы, не должны быть доступны напрямую из этого класса.
То есть в идеале, это должны быть protected методы у Parent, а дети иметь доступ к ним, но из-за того, что наследование использовать не получится, нужно придумать альтернативу.
Я рассмотрю ваши предложенные варианты чуть позже, и отмечу ответ как решением, ну или может вы ещё предложите что-то интересное.
Спасибо.
evgenin, сертификат только чтобы включить шифрование по https, для магазинов не годится, ну по крайне мере, если клиенты не мамонтоы.
Если ставите на обычные сайты, которые не занимаются платежами, то это самый лучший сертификат.
Если хватит сил, то только превратить их в шаринг хостинг.
Вряд ли кто в уме купит виртуалки с рук, это как кота в мешке брать.
В общем это мёртвый груз, если они вам не к чему :)
2. Алгоритмы.
3. C/C++ язык, потому что там можно выстрелить себе в ногу, а это полезно может быть.