Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Javascript - защита кода
цитата
27/09/10 в 20:19
 goodlover
Сабж. Как лучше? Использую jQuery, будет подобие плагина, наверное.
Но код довольно сложный, не хочу чтобы его юзал кто-то ещё.
Есть вопросы:
Сжатие = уже защита? И как сжимается код?
Кодирование = "данный сайт может повредить вашему компьютеру" в серпе?
Ну и вообще по теме интересно услышать инфу.
Спасибо.
цитата
27/09/10 в 20:43
 Stek
А зачем ?

Сжатие же помогает быстрее загрузить скрипт, т.е. сэкономить бандвич и быстрее отобразить страницу.
цитата
27/09/10 в 20:56
 goodlover
Да, сэкономить время на загрузку страницы - тоже плюс. Как код обычно сжимают?
И разбираться потом в таком коде - хрен разберёшься, я думаю? Это тоже плюс. icon_rolleyes.gif
цитата
27/09/10 в 21:40
 Sterx
ищи обфускатор
>хрен разберёшься, я думаю
геморно но можно
цитата
27/09/10 в 21:59
 LeadFarmer
защитить js как таковой нельзя - он исполняется на стороне клиента. единственно что можно - часть кода перенести на сторону сервера (в php скрипт к примеру), который возвращал бы какие-то критические переменные или части кода.
ну и классическая цитата ) если ты как-то "закодируешь" js (сожмешь или прогонишь через обфускатор) то затраты на расшифровку кода должны значительно превышать затраты на написание аналога с 0. тогда "злоумышленнику" не будет смысла разбирать твой код. icon_cool.gif

Последний раз редактировалось: LeadFarmer (27/09/10 в 22:16), всего редактировалось 1 раз
цитата
27/09/10 в 22:15
 goodlover
LeadFarmer: примерно понятно. Но тут нужно крепко думать про безопасность.

За обфускатор спасибо, не знал такого. Копаю дальше..
цитата
27/09/10 в 22:22
 LeadFarmer
кстати если нагуглишь такую отличную вещь как "Microsoft Script Encoder" - не трогай ее. гавно гавном icon_smile.gif в взламывается за секунды соответствующим софтом (его тоже легко нагуглить)
цитата
27/09/10 в 22:50
 Magistrator
http://dean.edwards.name/packer/

если кода много, то просто задолбаешся разбираться.
это единственная "защита"
цитата
27/09/10 в 22:57
 goodlover
Magistrator: спасибо, кажется то что нужно. smail54.gif
цитата
27/09/10 в 23:09
 LeadFarmer
только не забудь после таких обфускаторов проверять получившийся код АВ-сканерами icon_smile.gif
цитата
28/09/10 в 00:50
 sydoow
А онлайн где то можно проверить?
цитата
28/09/10 в 09:09
 goodlover
LeadFarmer писал:
только не забудь после таких обфускаторов проверять получившийся код АВ-сканерами icon_smile.gif

Там вроде бы всё понятно, ничего лишнего не добавляется.
цитата
28/09/10 в 09:27
 LeadFarmer
goodlover писал:
Там вроде бы всё понятно, ничего лишнего не добавляется.

проблема в том, что эксплоиты под браузеры часто криптуют обфускаторами, в том числе и теми что есть в свободном доступе. и некоторые АВ начинают определять сам обфускатор как вредоносный код. проверить в принципе просто - js код пропустить через вирустотал
цитата
29/09/10 в 06:13
 sydoow
LeadFarmer писал:
проверить в принципе просто - js код пропустить через вирустотал

Т.е. можно просто загрузить html файл с ява скриптом?
цитата
29/09/10 в 07:11
 LeadFarmer
sydoow писал:
Т.е. можно просто загрузить html файл с ява скриптом?

да.
кстати посмотрел как работает обфускатор по ссылке: http://dean.edwards.name/packer/ - толку от него 0 icon_smile.gif
к тому же

alert("a")
alert("b")

он зашифрует в

alert("a")alert("b")

то есть точка с запятой после каждой строки в исходном js - все-таки обязательна. а я себя всеми силами отучал не ставить ; icon_smile.gif
цитата
29/09/10 в 07:46
 LeadFarmer
теперь беру промышленный инструмент: http://compressorrater.thruhere.net/
пишу код: document.write("obfuscated")
на выходе получаю:

eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'^$'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('document.write("obfuscated")',[],1,''.split('|'),0,{}))

(там таблица появится с разными видами компрессии - я выбрал какой-то из Packer 3.1)
проверка по вирустотал дала 0 вирусов: http://www.virustotal.com/file-scan/report.html?id=38375f1de2f6eeb7…1285735321
цитата
13/10/10 в 01:58
 sydoow
Прикольный сайтик smail54.gif
А ещё есть чтонибудь подобное, да ещё чтобы мусора в код ЖС намешать? icon_smile.gif
цитата
13/10/10 в 08:30
 goodlover
Немного безвредного мусора не помешало бы, да. icon_smile.gif
цитата
13/10/10 в 12:28
 Dr.Syshalt
goodlover писал:
Сабж. Как лучше? Использую jQuery, будет подобие плагина, наверное.
Но код довольно сложный, не хочу чтобы его юзал кто-то ещё.


Тут все просто. Если на самом деле что-то серьезное - уноси на сервер, используй AJAX, не отдавай код клиенту.

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

Работать защита такая будет в одном случае - если код на самом деле никому не нужен.

Цитата:
Немного безвредного мусора не помешало бы, да.


Тебя не смущает, что "безвредный мусор" будет тормозить работу кода на клиенте?

Разработчики jQuery от pack отказались именно по этой причине, теперь только minified скрипты используют.
цитата
13/10/10 в 12:37
 Dr.Syshalt
Stek писал:
А зачем ?
Сжатие же помогает быстрее загрузить скрипт, т.е. сэкономить бандвич и быстрее отобразить страницу.


http://docs.jquery.com/Downloading_jQuery

Код:
The packed versions of jQuery will take less time to download than the minified or uncompressed versions; however, each time the library is loaded (initially or from the browser cache) it will need to be uncompressed which will cause a non-trivial delay in the execution of any jQuery code each time it is loaded.


Эта страница в полной версии