безопасно ли использовать онлайн-сценарий обфускации? - PullRequest
1 голос
/ 20 июля 2011

Я думаю о том, чтобы защитить свой скрипт для большинства пользователей (не разбирающихся в веб-разработках), и я наткнулся на онлайн-сервис для кодирования PHP-скрипта. Хотя я не уверен в этом.

Безопасно ли шифровать php скрипт? Что если в кодированном коде есть что-то подозрительное?

Ответы [ 6 ]

3 голосов
/ 20 июля 2011

Если вы хотите запутать свой серверный PHP, лучшим вариантом будет использование коммерческого продукта, такого как Zend Guard (http://www.zend.com/en/products/guard/).. Любое самодельное шифрование небезопасно - ваш код может быть легко переработан с помощью довольно тривиальных усилий. Страница, на которую вы ссылаетесь, не заслуживает доверия, это просто чей-то сторонний проект. Они не несут ответственности и не заинтересованы в защите вашей информации.

Даже эти коммерческие продукты (Zend Guard, ionCube, phpShield, SourceGuardian) могут быть расшифрованы, если кто-то действительно, действительно хотел. Ни один инструмент или методика на любом языке не может сделать абсолютно надежную запутывание, нет «не взломанной» системы. Со временем все сводится к усилиям.

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

[отредактировано для ясности]

3 голосов
/ 20 июля 2011

Если вы собираетесь распространять файл PHP, я бы посоветовал вам этого не делать. Это будет раздражать только тех, кто хочет возиться с этим.

Если по какой-то причине вы не хотите, чтобы они возились с ним, не распространяйте файл PHP.

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

Вы заметите, что ни в коем случае я не предлагаю вам на самом деле "кодировать" php-файл. Это ничего не купит.

1 голос
/ 20 июля 2011

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

0 голосов
/ 15 августа 2011

ОП упомянул заинтересованность в защите деталей соединения с базой данных, и следует помнить, что независимо от того, какая система защиты используется для самого кода, движок PHP и библиотеки компонентов с открытым исходным кодом устанавливают некоторые абсолютные ограничения на то, что может бытьдостигнуты.Если, например, детали подключения MySQL скрыты в скрипте, эти детали можно было бы тривиально раскрыть, не приближаясь к самим сценариям PHP, просто запустив сценарии со сборкой PHP, в которой были внесены небольшие изменения в библиотеку MySQL или связанную оболочку модуля PHP.,Даже сокрытие деталей в модуле C, как предложено Крисом Л., не обеспечит никакой дополнительной защиты в этом случае.Хорошая защита, безусловно, может быть предоставлена ​​исходному коду с помощью систем скомпилированного кода, таких как ionCube и Zend, но когда данные попадают в подпрограммы в ядре PHP, они могут быть раскрыты.

Очевидно, что для любой онлайн-службы, в которой вы можете отправлять конфиденциальные данные, вы должны проявить должную осмотрительность и приложить все усилия, чтобы у нее была хорошая родословная.Помимо всего прочего, не имея действующего URL-адреса https для сайта, опрашиваемый OP должен немедленно предупредить, что это нет-нет, и не только из-за отсутствия шифрования соединения, но и показать, что они не предлагают услугу, которую они считаютсерьезно.

0 голосов
/ 20 июля 2011

Итак, похоже, все, что он делает, это запутывает код, чтобы он не читался человеком. Единственный способ, которым это было бы действительно полезно, - это предотвратить его чтение ленивым людям, имеющим доступ к коду. Тем не менее, он использует простые функции для кодирования / декодирования, поэтому кому-то будет легко его декодировать, если у него есть доступ.

Что подводит меня к моей точке ... Безопасность PHP работает, не позволяя никому иметь доступ к исходному файлу. Если кто-то, у кого не должно быть доступа, получит его, то эта штука с «кодированием» не принесет вам пользы.

0 голосов
/ 20 июля 2011

php обычно работает на сервере, где пользователи в любом случае не имеют доступа к коду (ни к исходному, ни к какому-либо другому представлению).Там нет причин, чтобы запутать его там.

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

...