dmitriymar, давайте рассматривать тему, как чисто теоретическую. Если некоторая проблема, пусть сферическая и в вакууме, но которую я хочу решить. Назовем мой интерес чисто академическим:)
|
DjDiablo, не очень понимаю, причем тут eval, но обфускация и выполнение кода внутри функции - это само собой разумеющееся. Меня больше волнует то, что не скроешь. В частности, святая троица: пользовательский ввод + DOM + запросы.
|
Кстатии, раз уж внедрённые плагинами скрипты, это всётаки скрипты, то нельзя ли их выпилить со страницы силами javascript'а ?.
<!DOCTYPE HTML> <html> <head> </head> <body> <script> scr=document.getElementsByTagName('script'); console.log(scr); //чото делаем с scr[0]; </script> </body> </html> eval на отладку влияет. Выяснить где произошла ошибка, или или сделать в отладчике breakpoint, почти нереально. <!DOCTYPE HTML> <html> <head> </head> <body> <script> t="alert(1);"; t+="alert(2);"; t+="alert(" ; eval (t); </script> </body> </html> |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
тока не: frame.contentWindow.Function.toStringа вот: frame.contentWindow.Function.prototype.toString |
Цитата:
// 1. создаём фрейм. var frame = document.createElement("iframe"); document.documentElement.appendChild( frame ); // 2. тырим из него toString var Func_toString = frame.contentWindow.Function.prototype.toString; // для проверки функций var Obj_toString = frame.contentWindow.Object.prototype.toString; // для проверки объектов // 3. это объект, у которого заменён toString. var myEvilObj = { toString: function () { return "WHAHAHA"; } }; // 3.1. это функция у которой сменили var x = function() {} x.toString = function() { return "lalala" } // 4. если результаты их действия одинаковы, то никто ничего не заменял. alert( Obj_toString.call(myEvilObj) !== myEvilObj.toString() ); // true - заменили alert( Func_toString.call(x) !== x.toString() ); // true - заменили var y = function() {} alert( Func_toString.call(y) !== y.toString() ); // false - не заменяли |
Цитата:
да и какая разница, собственно ? :) alert(Function.prototype.toString === Function.toString); Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 06:57. |