Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Безопасность скрипта (https://javascript.ru/forum/misc/5356-bezopasnost-skripta.html)

Octane 10.05.2010 19:32

JSON.stringify(probeg)

micscr 10.05.2010 19:42

Цитата:

Сообщение от Octane (Сообщение 54747)
JSON.stringify(probeg)

Это как работает?

Ввожу в консоль alert(JSON.stringify(probeg)) выдает - undefined.

Octane 10.05.2010 19:54

Ну если probeg -- функция, то будет undefined.

Gvozd 10.05.2010 23:47

micscr,
имеет смысл выводить не пустую строку, а кусок обсфуцированного ложного кода

e1f 11.05.2010 03:07

Ммм... А если так?
// Declaration
function hidden_func(){
    console.info("Answer: 42");
}

// Hide me
hidden_func.toString =
hidden_func.toSource = function(){
    return "Go away!"
}

// Nice
alert(hidden_func);
alert(hidden_func.toString());
alert(hidden_func.toSource(1));

// Shit!
alert(Function.prototype.toString.call(hidden_func));
Function.prototype.toSource && alert(Function.prototype.toSource.call(hidden_func, 1));

Gvozd 11.05.2010 03:36

Цитата:

Сообщение от e1f
Ммм... А если так?

ну, в общем-то ясно, что надо менять прототип
например, можно сохранить старый toString и вызывать его не для всех функций не из списка защищаемых, для того чтобы сохранить функциональность старого toString
в ином случае, вообще не заморачиваться
PS а почему вы вызываете toSource с параметром?
ранее такого не видел

Octane 11.05.2010 03:50

http://code.google.com/p/jslibs/wiki...un-minifier%29

e1f 11.05.2010 03:56

Да, как-то так с прототипом и стоит поступить.
PS Чтобы отступы красивые были :) Если уже смотреть сорс, то форматированный, а не как кошка лапой :)

micscr 11.05.2010 08:25

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

Цитата:

имеет смысл выводить не пустую строку, а кусок обсфуцированного ложного кода
Сори не уточнил. Я сам шифрую текст функции в php по своему алгоритму, а в js уже расшифровываю зеркальной функцией.

p.s. Мотив мучений - не получил недавно последний платеж за работу. Их устроил обфусцированный вариант. Т.е. надо чтобы демка без сервера не работала.

Kolyaj 11.05.2010 09:00

Цитата:

Сообщение от micscr
Их устроил обфусцированный вариант.

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


Часовой пояс GMT +3, время: 22:03.