Как защитить Web приложение?

Каким образом можно предоставлять свои web приложения на сервера клиентов с исключением доступа к исходному коду.

Исходные данные: приложение на PHP с базой на MySQL, используется апач и стандартные PHP библиотеки для функционала.

Как вариант думал сделать образ машины с установкой на оборудование клиента, но даже в таком случае на сколько мне известно существует возможность получить доступ к содержимому этого образа.

Хотелось бы узнать какие еще существуют варианты защиты данных (в том числе и данные в базах чтоб не были доступны кроме как самому приложению).

PS: написал это как комментарий к одному из ответов, но позже решил что это достаточное уточнение чтоб отмести основные предлагаемые варианты.

Защита идет по двум путям - первое защита самого кода от посторонних глаз так как в нем будут присутствовать алгоритмы обращения к центральному серверу по лицензионному ключу за закрытым контентом, а в открытом коде это обходится правкой одной проверки. А во вторых это защита приватных данных клиентов от человеческого фактора. Все таки админы в последнее время имеют неоправданно большой доступ к данным клиентов, а человеческий фактор - самая уязвимая деталь как показывают новости о взломах.
  • Вопрос задан
  • 2955 просмотров
Решения вопроса 1
effetto
@effetto
.Net разработчик
Рекомендую Вам для начала задуматься над вопросом: "от кого вы собрались защищаться?".

Если Вы хотите чтобы Ваш клиент, не обладающий специальными навыками не уркал Ваше ПО, то Вам будет достаточно обфускаторов, о которых пишут коллеги выше (Zend, например).

Если Вы хотите защитить решения от угроз извне приложения, Вам следует нанять специалиста разработчика и провести аудит безопасности Вашего решения. Так же можете воспользоваться сканерами безопасности, типа XSpider или подобных.

Защитить же решение, которое размещается на внешнем сервере от хакеров / крякеров или иных специалистов, которые почему-то захотели именно Вашу программульку, Вам скорее всего самому не удастся. В таком случае стоит обратиться к профессионалам. Скорее всего Вам предстоит в таком случае пересмотреть архитектуру Вашего ПО, а так же каналы его распространения. Самый надежный сегодня вариант - это архитектура Software as a Service и собстенные защищенные сервера. Так поступают лидеры рынка, которые заполонили веб своими облачными решениями.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Шифруйте PHP-код Zend'ом, ставьте на сервер ionCube Loader — и будет Вам счастье :)
Ответ написан
Ernillew
@Ernillew
Администрирую *nix-системы с 1997 года
Гуглить по «обфускация php»
Ответ написан
Комментировать
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Ещё можете модифицировать для работы под HipHop или KPHP и распространять в бинарном виде. И производительность за одно увеличите.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Был бы вопрос)))
REST API - строго у Вас на серверах.
Тонкий клиент (html(5)/js/png/mp3/svg/etc.) - где угодно...

Для защиты АВТОРИЗАЦИИ: сертификаты и ключи.
Для защиты ДАННЫХ: используются алгоритмы шифрования канала передачи данных.
Для защиты REST API: защита авторизации + защита канала передачи данных.

И важно помнить!!!: всё что находится за пределами REST API - уже Вами не контролируется (как бы Вы не пытались криптовать или обфуцировать код/ключи и прочее).

Ваш кэп!)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы