Я создал CRM Saas для своего клиента, используя PHP, jQuery и HTML.
Недавно у моего клиента возникли некоторые проблемы с его сетью в офисе, и весь бизнес закрывается, потому что CRM не работает, когда сеть выключена,
Я хочу создать решения для подобных ситуаций,
например, я подумал, что, возможно, я создам локальную копию crm, и я сделаю синхронизацию между базой данных на сервере и локальной базой данных, и в тот момент, когда сеть будет отключена, я перенаправлю пользователя на локальную копию. CRM
и когда сеть снова запустится, я синхронизирую локальную БД с серверной БД и перенаправляю пользователя на CRM, который находится на сервере.
но у меня есть 1 проблема с этим решением,
я не хочу, чтобы у пользователя были исходные файлы CRM,
Есть ли зачем защищать эти файлы от него?
благодарю вас!
Вы можете установить локальный сервер с вашим выбором ОС, Apache, MySQL и т. Д. И зашифровать локальный диск, чтобы клиент не мог получить доступ к файлам в любое время:
Ссылка для Ubuntu: https://help.ubuntu.com/community/FullDiskEncryptionHowto
Если все ваши веб-документы (PHP, HTML и т. Д.) Все статические, то я предполагаю, что ваша база данных — это единственное, что необходимо синхронизировать. Мой совет будет идти по маршруту Active-> Standby:
Ссылка для MySQL: https://grox.net/sysadm/misc/mysql_active-standby_master-master.replication
Таким образом, в основном вам нужно настроить локальную базу данных вашего сайта на отключение, но при этом синхронизировать данные из активного экземпляра. Когда локальная БД не может связаться (через пульс или эхо-сигнал ICMP), локальная БД становится активной. Это также потребует незначительной настройки DNS или вам потребуется настроить этот сигнал в PHP на каждом соединении с БД.
Глядя на вышесказанное для единственной БД, я был бы более склонен отказаться от размещения и сохранить его локальным. Просто предоставьте себе любой доступ, необходимый для их поддержки (FTP, VNC и т. Д.).
Вы можете зашифровать код. Есть несколько способов сделать это, как на сам код PHP, так и на платформу, на которой выполняется код.
Обфускаторы PHP — всего несколько, вы можете получить больше на Google
Другой способ — установить VirtualBox на стороне клиента и запустить приложение в коробке Ubuntu / Fedora / WhwhatDistroYouLike с зашифрованной файловой системой. Всякий раз, когда вам нужно что-то обновить, вы можете легко создать новую версию виртуальной машины, протестировать ее на своем конце, а затем просто установить ее на территории клиента (это займет несколько минут). Контейнеры с зашифрованным докером также стоит посмотреть!