Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Защита исходного кода. Кодирование, обфускация
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Защита исходного кода. Кодирование, обфускация

Страниц (1): [1]
 

1. Anguis - 28 Августа, 2014 - 23:42:06 - перейти к сообщению
Здравствуйте, уважаемые php-гуру и интересующиеся.
Вот нежданно негаданно встал передо мной вопрос о защите исходного кода, которую требует от меня заказчик. И полез я в всезнающий гугль. И узрел я там, что тема сия почти в лету канула. Посты на хабре и на всяких девелоперских форумах уже бородатей бородатого, <2010 г.
И собственно решил я испросить у знающих. А что нового то в теме есть? На дворе уже 2015 на носу, неужели тема не развивается? Собственно что вы знаете, что можете порекомендовать? Какие из шароварных решений есть гуд, какие из платных? Может есть иные хитроумные темы, окромя Zend Guard и IonCube.
Интересует также защита javascript и html (хотя бы видимая, для отмазки перед заказчиком)

Дельным комментам - хвала и почет! Коменты типа, "кому надо - все равно уведут" и от хорошего хакера слона не утаишь" презираются и игнорируются.

P.S. извините, не нашел подходящего раздела для вопроса, потому как речь идет о защите файлов от возможного угона то и разместил в работу с файловой системой.
2. RickMan - 29 Августа, 2014 - 00:05:48 - перейти к сообщению
Если реально нужна защита и что-бы не раскодировали таким же фришным способок то юзай Zend Guard и IonCube. И не хакнутые версии а лицуху. В противном случае лишь себе усложнишь жизнь. С JS можно обфускацию сделать. Но это лишь видимое решение. Восстановить код будет не сложно.

http://habrahabr[dot]ru/post/112530/
http://myobfuscate[dot]com/?lang=ru
http://wb0[dot]ru/jsobf.php
3. Anguis - 29 Августа, 2014 - 08:26:32 - перейти к сообщению
Первую ссыль видел, там в коментах есть интересный способ сжатия Js -
http://webo[dot]in/articles/habrahabr/47-compression-using-canvas/

Опять таки он был выведен аж в 2008 году. Там сказано что производительность мол страдает и canvas не все поддерживают. Прошло с тех пор уже 6 лет. canvas поддерживают все а вот что с производительностью?

Zend Guard, IonCube - это все хорошо и понятно. А что по поводу защиты с подгрузкой какого-нть критического модуля сайта с собственного сервера? Имеет ли такая тема смысл, или это будет тока бессмысленным торможением проекта?
4. caballero - 29 Августа, 2014 - 09:09:03 - перейти к сообщению
эта тема смысла не имеет потому что ни в каком виде. Сам подумай кому нужно копаться в твоем не шибко грамотно написанном коде?
5. ПТО - 29 Августа, 2014 - 09:14:08 - перейти к сообщению
Лень. Просто всем будет лень копаться в чужом коде. Это правда. Так что никто не будет.
Anguis пишет:
требует от меня заказчик

Я бы с заказчиком изначально договаривался, что сервер будет свой у Вас, и предлагал модель SaaS
6. RickMan - 29 Августа, 2014 - 09:15:14 - перейти к сообщению
Если твой скрипт сможет подгрузить какой-то скрипт удаленно, и этот сервер взломают, то они смогут спокойно получить удаленные файлы. Смысла в такой "защите нету". Вообще, самая лучшая защита это хороший код + хорошо настроенная ОС. По факту защитись от проникновешния в БД, от загрузки шеллов на сервер ну и от брута сервера и будет твоему скрипту счастье.
7. ПТО - 29 Августа, 2014 - 09:18:43 - перейти к сообщению
RickMan пишет:
самая лучшая защита это хороший код
Тут речь идет об интеллектуальном праве на ПО. Поэтому как раз наоборот: самая лучшая защита - плохой код ))
8. Viper - 29 Августа, 2014 - 13:04:50 - перейти к сообщению
ПТО верно Улыбка "правильно" работающий говнокод "сажает заказчика на иглу" Улыбка
9. Anguis - 29 Августа, 2014 - 18:30:45 - перейти к сообщению
caballero пишет:
эта тема смысла не имеет потому что ни в каком виде. Сам подумай кому нужно копаться в твоем не шибко грамотно написанном коде?


Ну куда уж мне до такого гуру как вы. А по делу слабо писать?

Вопрос не в том, кому и где надо будет копаться. Вопрос в методах защиты. Я уже тысячу раз читал что не имеет смысл защищать код, ведь ваша быдлописанина нафик ни кому не нужна. Была скромная надежда, что здешние обитатели отличатся оригинальностью и не будут как мантры повторять это.

Но как показывает практика - нужна. Те, кто работал на фрилансе наверняка сталкивались с такой ситуацией, когда берешь проектик, выполняешь, сдаешь. А потом выясняется что работал ты не на прямого заказчика, а на посредника, и этот человек удаляет твой копирайт и ставит свой и твою разработку выдает за свою, кладет её в свое портфолио. Обидно, однако, каким бы быдлокодом она не являлась. А бывают еще ситуации когда недобросовестный заказчик заказывает какой-нибудь модуль для cms и потом его распространяет от своего лица. А бывает - когда заказчику НАДО что бы код на его сайте был зашифрован и ответ - это невозможно - его не устраивает. По этому вопрос не в копании чужого быдлокода, а в защите его.

По теме, немного резюмирую. Много я литературы перевернул. По итогу - хочешь нормальную защиту - плати. В принципе, логично. Т.к. защита обычно требуется для коммерческих проектов. Альтернатив Zend Guard и IonCube по сути нет. Все компании, которые предлагают шифровать ваш код - используют их. Редко кто отличается оригинальностью. По поводу html и havascript - только обфускация. Кастати, неоправданная. Разумных доводов в ее пользу я не нашел. Код становится больше, зачастую тормознутее.. Но тем не менее для заказчика именно она и будет применена.

Единственное, что для меня осталось темной лошадкой - расширение Bcompiler.
Опять таки информации о нем в рунете крайне мало и она бородатая. Последний релиз от 2011-06-09. Есть кто сталкивался с ним, щупал? Кто что может сказать о нем?
10. IllusionMH - 29 Августа, 2014 - 18:41:46 - перейти к сообщению
Anguis, да в первый попавшийся удобный в использовании обфускатор запихните JS. Если заказчика не устраивает(он проверять вообще будет что там за каша?), пусть называет инструмен которым он был бы доволен. Смысл своё время терять, за минимальный профит?


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

А по поводу нечестных посредников/заказчиков... сами ж говорите что при желании все это можно деобфусцировать, так что от вот этих 2 категорий точно не поможет
11. Anguis - 29 Августа, 2014 - 19:21:06 - перейти к сообщению
IllusionMH да мне бы хотелось основательно разобраться в проблеме для себя. Раз уж пришлось столкнуться с ней. Отмазка от заказчика - для программиста, сами знаете, дело нехитрое. Просто я кодил кодил лет уже как 8 и не задумывался даже, а тут бамс - кодировать. А я и вообще ни чего не знаю ни о кодировании, ни о кодировщиках, ни о обфускации. Думаю ну коли так - то надобно основательно разобраться в этом, мало ли пригодится еще где..
12. caballero - 29 Августа, 2014 - 21:00:59 - перейти к сообщению
Цитата:
Была скромная надежда, что здешние обитатели отличатся оригинальностью и не будут как мантры повторять это.

так и вы оригинальность не отличаетесь. Вы не первый и не последний здесь кто пытается спрятать свой "не имеющий аналогов" код.


Цитата:
Те, кто работал на фрилансе наверняка сталкивались с такой ситуацией, когда берешь проектик, выполняешь, сдаешь. А потом выясняется что работал ты не на прямого заказчика, а на посредника, и этот человек удаляет твой копирайт и ставит свой и твою разработку выдает за свою, кладет её в свое портфолио.

ну так положите его на гитхаб - там даты коммитов ставятся.

Цитата:
А бывают еще ситуации когда недобросовестный заказчик заказывает какой-нибудь модуль для cms и потом его распространяет от своего лица. А бывает - когда заказчику НАДО что бы код на его сайте был зашифрован и ответ - это невозможно - его не устраивает.

фигня. Ни разу не встречал такого заказчика - от кого заказчику прятать код? От админов хостинга? Если конешно этот заказчик не посредник который хочет посадить на иглу конечного заказчика.

Кстати не приведете ли пример кода (вашего желательно) который бы захотелось украсть потому что:
а) - аналогов в интернете нет
б) на нем можно неплохо заработать


Цитата:
Т.к. защита обычно требуется для коммерческих проектов.

коммерческих opensource проектов - пруд пруди. На PHP - подавляющее большинство.
13. DelphinPRO - 29 Августа, 2014 - 21:21:07 - перейти к сообщению
Anguis пишет:
Была скромная надежда, что здешние обитатели отличатся оригинальностью и не будут как мантры повторять это.


Да сто раз уже пережевано... Хочешь обфускацию - используй Zend Guard, IonCube (лучше легальные). Все остальное - хрень, не стоящая того, чтобы на нее тратили время.
(Добавление)
Что касается шифровки на клиенте, то это вообще лишено смысла, и аргумент "заказчик требует" нифига не аргумент, а лишь говорит о том, что заказчик дебил. Ну или исполнитель, который не смог объяснить заказчику суть проблемы понятным языком.

PS Я шесть лет работаю на фрилансе, и ни разу не сталкивался с озвученными вами проблемами.
14. Anguis - 29 Августа, 2014 - 22:34:23 - перейти к сообщению
caballero пишет:
Кстати не приведете ли пример кода (вашего желательно) который бы захотелось украсть потому что:
а) - аналогов в интернете нет
б) на нем можно неплохо заработать


Да ну, куда уж мне. Мой максимум - ватермарки и текст на изображениях с использованием php-imagick ... ну обертки для консольного ImageMagick
Но я видел код который сам хотел стырить.. правда я не помню что за код, что-то там для работы с картой, её координатами..

Ну ради примера вот функция для пагинации методом GET. В принципе, нужна для любого проекта и у кого нет вменяемого решения будет не прочь увести. Аналогов - пропасть. Но её написал я сам уже давно и везде ей пользуюсь, слегка модифицируя под конкретные нужды. Имхо, удобненько.

Немного модифицировал для наглядности, ob_start был перед циклом и в цикле странички набирались тоже инклудом шаблона ссылки, потом это все дело передавалось в шаблон обертки.
(Добавление)
DelphinPRO, когда последний раз пережовывалось? В 2010? 2008? Просто хотел узнать что нового в теме есть..
DelphinPRO пишет:
PS Я шесть лет работаю на фрилансе, и ни разу не сталкивался с озвученными вами проблемами.

Вам повезло. Я вот взял заказ у фирмы по продаже спецтехники. У них номенклатуры тысячи наименований, которые все выводятся javascript менюхой. и директор сильно параноит по поводу того что конкуренты могут это дело увести. То просил меня запретить копирование текста с сайта, терь вот вообще все зашифровать. А по мне так и менюха их - овно овном...
(Добавление)
P.S. Да и кстати считаю что кусок кода не может быть гениальным или не гениальным. Все таки проект целиком - совокупность фронт-энда и бак-энда. И он вполне может состоять из кусков совсем не гениального кода, но в целом быть довольно уникальным интересным и продаваемым. Множество коммерческих cms тому подтверждение. Поэтому как бы и рассматривается комплексная защита и бак и фронт эндов.

P.P.S. Достал функцию из задворок либ, которых уже не первый год не касаюсь и обнаружил в ней несколько мелких, но неприятных косяков. Однако бывает полезно тряхнуть стариной.

Так и что по поводу Bcompiler'а? Он в лету канул? Бородатые темы о нем довольно неплохо отзывались..
15. Мелкий - 30 Августа, 2014 - 10:51:16 - перейти к сообщению
Anguis пишет:
директор сильно параноит по поводу того что конкуренты могут это дело увести

Вот и расскажите ему, что он дурак. Всё, что видит пользователь без особых проблем парсится. Паранит - значит не показывать эти данные нигде. Вообще нигде.

 

Powered by ExBB FM 1.0 RC1