2016-07-18 3 views
-1

Как я могу кодировать или шифровать исходный код PHP?PHP-кодирование исходного кода/Obfuscator

  1. Я попробовал этот PHP Base64 encoder, проблема заключается в том, что она легко расшифровать для кого-то, кто знает его.

  2. Для более сильного шифрования я использую этот AES Enryption, но если я зашифрую некоторый код PHP, моя страница не работает.

Какой из лучших методов? Я не хочу использовать Ioncube или Loaders.

+4

Возможная проблема [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Вам должно быть больше беспокоиться о том, что кто-то может получить исходный код вообще ... – FirstOne

ответ

0

Шифрование кода PHP может дать вам ложное чувство безопасности. Поистине зашифрованный код не сможет работать, потому что парсер PHP не имеет смысла. Я думаю, что более точно подумать о том, что вы пытаетесь сделать, как scrambling или obfuscating код. Это делает код намного сложнее читать, но всегда обратимо, что если вы защищаете что-то ценное против мотивированного противника, то обфускация будет покупать вас только некоторое время.

Возможно, существует множество решений для обфускации кода. Один из наиболее популярных вариантов - IonCube Loader. Я никогда не использовал его, и я не знаком с его эффективностью, но это единственный, о котором я знаю. Другие могут добавить свои отзывы.

Чтобы защитить исходные файлы, вы просто не хотите помещать их в среду, в которой к ним может быть доступен тот, кому вы не доверяете. Например, простой шаг, который вы можете предпринять, - убедиться, что ваши критические файлы PHP находятся за пределами общедоступного каталога на вашем веб-сервере (обычно это называется public_html или www).

+0

«Действительно зашифрованный код не сможет работать, потому что парсер PHP не имеет смысла». - поэтому решения, такие как ionCube, имеют расширение для выполнения кода. Сначала кодирование компилируется в байт-код, а затем добавляет к нему защиту. Некоторые также шифруют, например, V8 ionCube, где вы можете использовать динамические ключи, которые нигде не хранятся, устраняя присущую слабость хранимых ключей. OP не хочет расширения, поэтому единственный вариант - защита источника для перехода через eval(). Этого может быть достаточно, но источник может быть выставлен довольно легко. Раскрытие информации: Я связан с ionCube. – Nick

+0

@ Ник, что вы подразумеваете под «* защитным источником для прогона через eval() *"? – BeetleJuice

+0

Как вы правильно говорите, PHP сам по себе может понять источник, поэтому любой защитник, не использующий расширение, должен восстановить искаженный код в какой-то форме исходного кода. (AGH! Hate, который случайно попадает в ответные сообщения). Затем следует вызвать eval() в восстановленном источнике. Источник может быть обнаружен путем исправления PHP API API API, который использует eval(). – Nick

Смежные вопросы