3
3
3ton2015-12-29 12:35:57
linux
3ton, 2015-12-29 12:35:57

How to secure a Web application?

How can you provide your web applications to client servers without access to the source code.
Initial data: PHP application based on MySQL, using Apache and standard PHP libraries for functionality.
As an option, I thought to make an image of the machine with installation on the client's equipment, but even in this case, as far as I know, it is possible to access the contents of this image.
I would like to know what other data protection options exist (including data in databases so that they are not available except to the application itself).
PS: I wrote this as a comment on one of the answers, but later decided that this was enough clarification to dismiss the main proposed options.
Protection goes in two ways - the first is protection of the code itself from prying eyes, since it will contain algorithms for accessing the central server using a license key for closed content, and in open source this is done by editing one check. And secondly, it is the protection of clients' private data from the human factor. All the same, admins have recently had unreasonably large access to customer data, and the human factor is the most vulnerable detail, as news about hacks show.

Answer the question

In order to leave comments, you need to log in

6 answer(s)
P
Pavel Elizariev, 2015-12-29
@3ton

I recommend that you first think about the question: "from whom are you going to defend yourself?".
If you want your client, who does not have special skills, not to steal your software, then obfuscators, which colleagues write about above (Zend, for example), will be enough for you.
If you want to protect solutions from threats from outside the application, you should hire a specialist developer and conduct a security audit of your solution. You can also use security scanners like XSpider or similar.
Защитить же решение, которое размещается на внешнем сервере от хакеров / крякеров или иных специалистов, которые почему-то захотели именно Вашу программульку, Вам скорее всего самому не удастся. В таком случае стоит обратиться к профессионалам. Скорее всего Вам предстоит в таком случае пересмотреть архитектуру Вашего ПО, а так же каналы его распространения. Самый надежный сегодня вариант - это архитектура Software as a Service и собстенные защищенные сервера. Так поступают лидеры рынка, которые заполонили веб своими облачными решениями.

S
Sergey Nalomenko, 2015-12-29
@nalomenko

Encrypt PHP code with Zend , put ionCube Loader on the server - and you will be happy :)

E
Ergil Osin, 2015-12-29
@Ernillew

Гуглить по «обфускация php»

S
Sergey Lerg, 2015-12-29
@Lerg

Ещё можете модифицировать для работы под HipHop или KPHP и распространять в бинарном виде. И производительность за одно увеличите.

X
xmoonlight, 2015-12-29
@xmoonlight

Был бы вопрос)))
REST API - строго у Вас на серверах.
Тонкий клиент (html(5)/js/png/mp3/svg/etc.) - где угодно...
Для защиты АВТОРИЗАЦИИ: сертификаты и ключи.
Для защиты ДАННЫХ: используются алгоритмы шифрования канала передачи данных.
Для защиты REST API: защита авторизации + защита канала передачи данных.
И важно помнить!!!: всё что находится за пределами REST API - уже Вами не контролируется (как бы Вы не пытались криптовать или обфуцировать код/ключи и прочее).
Ваш кэп!)

O
OnYourLips, 2015-12-29
@OnYourLips

Способ "скрыть код и отдать клиентам" не работает, и это проверено годами.
Есть два способа:
1. Дать клиентам открытый код.
2. Захостить самим. Этот подход называется SaaS.
Иногда эти оба подхода сочетают. Тот же Wordpress пример такому сочетанию.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question