Исходное шифрование PHP - эффективность и недостатки

Лично я использовал бы регулярное выражение и затем преобразовал бы заключительную строку в нижний регистр. Я понятия не имею, как записать это в Python, но основная идея к:

  1. символы Remove в строке, которые не соответствуют нечувствительному к регистру regex" \w"
  2. , Преобразовывают строку в нижний регистр

или наоборот.

6
задан Ira Baxter 11 October 2009 в 20:03
поделиться

6 ответов

Схемы шифрования (или кодировщика) пытаются скрыть ваш код как зашифрованный файл. Очевидно, что код необходимо расшифровать во время выполнения, что добавляет ненужные накладные расходы. Некоторые из них также настаивают на том, чтобы хост-система установила специальные подпрограммы, которые очень не нравятся хостерам, потому что они не хотят настраивать специальные конфигурации только для вас. Но плохо то, что они содержат семена собственного уничтожения: для запуска на целевом хосте они должны содержать программное обеспечение для дешифрования. Поэтому, если вы его используете, вы доставляете тот самый дешифратор, который необходим для доступа к вашему коду. Вопрос только в том, чтобы найти его; после обнаружения ваш код полностью расшифровывается и раскрывается. Это просто небезопасно.

Схемы запутывания шифруют имена идентификаторов, удаляют комментарии и форматирование. Но запутанный код работает точно так же, как оригинал, без накладных расходов и специальной поддержки времени выполнения. Обфускаторы зависят от изначальной сложности понимания программ в целом. Программы достаточно сложны для понимания, когда они хорошо разработаны, имена хорошо выбраны и в коде есть хорошие комментарии. Мы все надеемся, что наши программы хорошо спроектированы, но если названия плохие и комментарии отсутствуют, их довольно сложно понять. Изучите свой собственный опыт работы с кодом других людей.

Люди скажут: «Но любой может проверить запутанный код и понять его». Это правда, если у вас крошечное приложение. Если ваше приложение имеет какой-либо масштаб (десятки страниц кода), чрезвычайно трудно понять, что оно делает, когда все имена переменных зашифрованы. Чем больше ваш код, тем лучше его защита от запутывания.

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

имена хорошо подобраны, и в коде есть хорошие комментарии. Мы все надеемся, что наши программы хорошо спроектированы, но если названия плохие и комментарии отсутствуют, их довольно сложно понять. Изучите свой собственный опыт работы с кодом других людей.

Люди скажут: «Но любой может проверить запутанный код и понять его». Это правда, если у вас крошечное приложение. Если ваше приложение имеет какой-либо масштаб (десятки страниц кода), чрезвычайно сложно понять, что оно делает, когда все имена переменных зашифрованы. Чем больше ваш код, тем лучше его защита от запутывания.

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

имена хорошо подобраны, и в коде есть хорошие комментарии. Мы все надеемся, что наши программы хорошо спроектированы, но если названия плохие и комментарии отсутствуют, их довольно сложно понять. Изучите свой собственный опыт работы с кодом других людей.

Люди скажут: «Но любой может проверить запутанный код и понять его». Это правда, если у вас крошечное приложение. Если ваше приложение имеет какой-либо масштаб (десятки страниц кода), чрезвычайно трудно понять, что оно делает, когда все имена переменных зашифрованы. Чем больше ваш код, тем лучше его защита от запутывания.

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

но если имена плохие и комментарии исчезли, их довольно сложно понять. Изучите свой собственный опыт работы с кодом других людей.

Люди скажут: «Но любой может проверить запутанный код и понять его». Это правда, если у вас крошечное приложение. Если ваше приложение имеет какой-либо масштаб (десятки страниц кода), чрезвычайно трудно понять, что оно делает, когда все имена переменных зашифрованы. Чем больше ваш код, тем лучше его защита от запутывания.

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

но если имена плохие и комментарии исчезли, их довольно сложно понять. Изучите свой собственный опыт работы с кодом других людей.

Люди скажут: «Но любой может проверить запутанный код и понять его». Это правда, если у вас крошечное приложение. Если ваше приложение имеет какой-либо масштаб (десятки страниц кода), чрезвычайно сложно понять, что оно делает, когда все имена переменных зашифрованы. Чем больше ваш код, тем лучше его защита от запутывания.

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

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

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

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

Если вы хотите увидеть примеры того, что делает один обфускатор PHP, см. Наш Обфускатор PHP Thicket .

7
ответ дан 8 December 2019 в 14:44
поделиться

Ни Zend Guard, ни ionCube не используют шифрование в математическом смысле для защиты вашего кода. Что они делают, за исключением обфускации, уже описанной другими ответами, - это кодирование.

Это процесс, который обычно выполняется автоматически интерпретатором PHP каждый раз при обращении к вашему сценарию - ваш сценарий PHP компилируется в формат байт-кода, который затем выполняется. Кодировщики, такие как Zend Guard и ionCube, по сути, делают эквивалентный процесс, только он выполняется один раз, а затем только "скомпилированный" байт-код становится доступным / загружается на сервер.

Это означает, что фактически воссоздается тот же самый код, что и вы когда-то писали совершенно невозможно. Что не невозможно, и это также касается обфускации,

7
ответ дан 8 December 2019 в 14:44
поделиться

Почему именно вам нужно шифровать исходный код? Если вы используете это как защиту от потенциальных хакеров, то поверьте, когда я говорю, что если бы они действительно хотели расшифровать ваш исходный код, они бы это сделали. Это возможно с ionCube, когда я проверял в прошлый раз.

Что касается влияния на производительность, я считаю, что Zend немного быстрее, чем ionCube, поскольку не требует дополнительных файлов. Но, как я сказал ранее, ни в чем не полагайтесь на шифрование.

2
ответ дан 8 December 2019 в 14:44
поделиться

Если это возможно, то его можно декомпилировать. Придерживайтесь юридической команды для прав доступа, а не для шифрования :) А еще лучше, откройте исходный код своего проекта: P

РЕДАКТИРОВАТЬ: «Шифрование» также значительно увеличивает время выполнения!

1
ответ дан 8 December 2019 в 14:44
поделиться

Единственное, что вы можете сделать против хостинговой компании, - это иметь хорошую лицензию и юриста

0
ответ дан 8 December 2019 в 14:44
поделиться

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

Таким образом, они не гарантируют безопасность вашего кода, они просто усложняют его понимание .

-1
ответ дан 8 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: