Автор Тема: Защитаване на JS код - Obfuscation, Uglify и т.н.  (Прочетена 12502 пъти)

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Имаме една страница с JS код и css която се получи много добре.
кодът е малък и много добре кометиран, но върши прекрасна работа.

Обаче конкуренцията като види какво е направено веднага ще изкопира и ще си го пригоди за себе си.

Как може да се защити (и JS и css-a) с Obfuscation..Uglify и т.н. така че даже и да го изкопират да не може да го ползват пълноценно нито да го променят за себе си?

видях че има разни такива тулове https://stackoverflow.com/questions/194397/how-can-i-obfuscate-protect-javascript

но не знам към какво да се насоча.
От друга страна такъв тул е 'one way ticket'. ако объркаш нещо и презпишеш файла си го губиш.

Бих искал да е динамично генериране на погрозняването. Нещо чрез apache? така че оригинала винаги да си стои.
https://httpd.apache.org/docs/2.4/mod/mod_ext_filter.html
https://httpd.apache.org/docs/2.4/filter.html

например така: браузера казва GET some_script.js апачито то намира, чете го (оригиналният файл), след това го прекарва през някакъв скрипт за погрозняване и го връща на браузера.

Идеи?
« Последна редакция: May 29, 2019, 11:26 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #1 -: May 29, 2019, 15:23 »
Ами уеб сокети и.. сметките на сървъра и само да праща резултата, да видим тогаз как ще плагиатстват. Инак ако е нещо само за разкрасяване, няма как, особено. при положение че и грозно пак ще им върши работа, защо да си играят да го разхубавяват, само ще си добавят нужните тагове та да намери елементите Джава скрипта


Нищо не спира крадците вкл. и страхът от смъртно наказание
http://e-vestnik.bg/30436/astronomicheski-krazhbi-v-ruskia-kosmicheski-sektor/

Е нема да отидат на луната и това си е....
« Последна редакция: May 29, 2019, 15:27 от remotexx »
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #2 -: May 29, 2019, 20:03 »
От няколко часа я гледам тази тема и съм във вътрешен конфликт да отговоря.

Има възможни два отговора според това, какво точно искате да защитите. Ако е резултат от някаква обработка е едно. На него Ремо отговори да се пренесе логиката в обслужващата страна. Тук има още една подробност. Ако искат да се защитят самите данни от „източване“, тогава се прилагат допълнителни защити за индетификация. Най-модерния подход е да се подават жетони, които изтичат за някакво време.

Другия възможен отговор е, ако целта е да се защити самия код (js в случая). Това само по себе си е мисия невъзможна. Колкото има загрозители, толкова повече са разхубавителите. И не съм виждал по-добри разхубавители от тези. Работят като магия.

Гигантите с много пари отдавна недолюбват факта, че трябва да споделят js. И не отдавна му намериха цаката. Има нов стандарт, който се казва web assembly или wasm (което не трябва да се бърка с asm.js, макар да му е наследник). Той е създаден точно с тази цел и се поддържа на всички основни интернетски навигатори включително IEvil и то преди още да се е хроматизирал.

Това е единствения вариант. Но опасявам се, имам още една лоша новина. Ако става въпрос за кратък код, както се подразбира, то wasm няма да спре присвояването му. Wasm е замислен за това, но се подразбира големи количества код. При малко всичко е безсилно.

п.п. Чак не си вярвам, че успях да напиша всичко това въпреки волята си.

=*=

Успех!
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #3 -: May 30, 2019, 11:27 »
Цитат
Другия възможен отговор е, ако целта е да се защити самия код (js в случая). Това само по себе си е мисия невъзможна. Колкото има загрозители, толкова повече са разхубавителите. И не съм виждал по-добри разхубавители от тези. Работят като магия.

Трябва да се защити малък JS код и css-a и html-a около него евентуално. Наясно съм, че теоретично е невъзможно но целта е да вгорчи максимално живота на вероятният пират.

Трябва да пробвам произволен скрипт с някой онлине тул какъв е ефекта от погрознител и след това разхубавител??? Какво ли ще стане?

От друга страна защо ще съществуват погрознители ако нямат ефект?
https://obfuscator.io/ - нещо може ли да се разбере от кода като се пуснат всичките (повечето) опции.
https://beautifier.io/

------
я какво пишело отгоре на https://obfuscator.io/

Цитат
So, like UglifyJS, Closure Compiler, etc?

Yes and no. While UglifyJS (and others minifiers) does make the output code harder to understand (compressed and ugly), it can be easily be transformed into something readable using a JS Beautifier.

This tool prevents that by using various transformations and "traps", such as self-defending and debug protection.

« Последна редакция: May 30, 2019, 12:26 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #4 -: May 30, 2019, 12:27 »
Имат ефект, но не достатъчен да затруднят този, който желае да прочете кода. Съществуват с друга цел. Целта им е да пестят трафик и изчислителни ресурси, в резултат на което да станат по-отзивчиви страниците. То затова оригинално се наричат минифаери.

По начало загрозителите са мислени за Пърл и ПХП. Тогава имаха доста добър ефект за защита. Днес не знам как е, но са малко компаниите, които се занимават да продават такива системи. Има някой друг форум, някой друг магазин и горе-долу е това. Те обаче разчитат на адвокати. Сиреч да те хванат, ако си нелегален. А на запад да те хванат с краден код е равносилно на прекратяване на бизнеса.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #5 -: May 30, 2019, 12:33 »
Което ми напомня, че вие също можете да съдите конкуренцията, ако ви подлива вода. В български съд сто процента ще мине делото и няма да ви излезе скъпо.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #6 -: May 30, 2019, 15:13 »
Няма как да стане с интерпретаторен език, трябва да има нещо валидно да се интерпретира... до машинен език... виж компилаторните езици е друго, там вече всичко е на машинен език и може да си спряташ кушии като прехващане на дебъгери и пр., но пък при тях губиш платформената независимост, че даже и вътреплатформената, ако да кажем оптимизираш кода за един конкретен процесор а па той се окаже друг по време на изпълнение, напр. Със/без SSE 4
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #7 -: May 30, 2019, 15:17 »
Пробвай, ама не знам дали ще ти хареса, с погрознител дето направо чупи годзиломера, т.е. дето вкарва екстра код който не се отразява на резултата само пречи на ревърс инженеринга, и... като им вкара там 100 МБ екстра код ..1+1,2-3 и пр. да вървят да се оправят

Но както вече се сещаш това при положение че твоя код не е тайм сенситив и му е се тая ако се забави със секунда-две

П.П. което обаче пак не ги спира да го вземат и ползват както си е - вкарай нейде извътре някакъв forward secrecy механизъм да взема еднократен токен от твоя сървър.
И споко 100 мб няма да ги сваля всеки път с подходящ е-таг
« Последна редакция: May 30, 2019, 15:21 от remotexx »
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #8 -: May 30, 2019, 15:51 »
Пробвай, ама не знам дали ще ти хареса, с погрознител дето направо чупи годзиломера, т.е. дето вкарва екстра код който не се отразява на резултата само пречи на ревърс инженеринга, и... като им вкара там 100 МБ екстра код ..1+1,2-3 и пр. да вървят да се оправят

Но както вече се сещаш това при положение че твоя код не е тайм сенситив и му е се тая ако се забави със секунда-две

П.П. което обаче пак не ги спира да го вземат и ползват както си е - вкарай нейде извътре някакъв forward secrecy механизъм да взема еднократен токен от твоя сървър.
И споко 100 мб няма да ги сваля всеки път с подходящ е-таг

те и двете тези опции ги има тук https://obfuscator.io/ (Domain lock и Dead Code Injection) пък и е с отворен код....

Много грозно става.

Обаче какво е това npm и node.js ??? https://github.com/javascript-obfuscator/javascript-obfuscator за един такъв тул цяла екосистема за js ли трябва да качвам? нещо ме е страх.
Няма ли някой подобен погрознител писан на PHP
« Последна редакция: May 30, 2019, 15:54 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

n00b

  • Напреднали
  • *****
  • Публикации: 1248
  • Distribution: OSX
  • Window Manager: 10.6, 10.8, 10.9
  • Live to hack, hack to live.
    • Профил
Re: Защитаване на JS код - Obfuscation, Uglify и т.н.
« Отговор #9 -: Jun 02, 2019, 18:10 »
ВИНАГИ държиш оригиналните файлове. И тогава пускаш горните инструменти отгоре им.

Тъй като държиш оригиналните файлове на сигурно място не се притесняваш за последствията.

Google препоръчват ето това:
https://closure-compiler.appspot.com/home
Активен

mobilio - професионални мобилни приложения