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

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

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

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

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

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

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

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

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

Защитить же решение, которое размещается на внешнем сервере от хакеров / крякеров или иных специалистов, которые почему-то захотели именно Вашу программульку, Вам скорее всего самому не удастся. В таком случае стоит обратиться к профессионалам. Скорее всего Вам предстоит в таком случае пересмотреть архитектуру Вашего ПО, а так же каналы его распространения. Самый надежный сегодня вариант - это архитектура Software as a Service и собстенные защищенные сервера. Так поступают лидеры рынка, которые заполонили веб своими облачными решениями.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
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 - уже Вами не контролируется (как бы Вы не пытались криптовать или обфуцировать код/ключи и прочее).

Ваш кэп!)
Ответ написан
OnYourLips
@OnYourLips
Способ "скрыть код и отдать клиентам" не работает, и это проверено годами.

Есть два способа:
1. Дать клиентам открытый код.
2. Захостить самим. Этот подход называется SaaS.

Иногда эти оба подхода сочетают. Тот же Wordpress пример такому сочетанию.
Ответ написан
Ваш ответ на вопрос

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

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