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, время: 17:15. |