Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 28.10.2012, 23:55
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

dmitriymar, давайте рассматривать тему, как чисто теоретическую. Если некоторая проблема, пусть сферическая и в вакууме, но которую я хочу решить. Назовем мой интерес чисто академическим
Ответить с цитированием
  #22 (permalink)  
Старый 29.10.2012, 00:03
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

DjDiablo, не очень понимаю, причем тут eval, но обфускация и выполнение кода внутри функции - это само собой разумеющееся. Меня больше волнует то, что не скроешь. В частности, святая троица: пользовательский ввод + DOM + запросы.
Ответить с цитированием
  #23 (permalink)  
Старый 29.10.2012, 00:09
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Кстатии, раз уж внедрённые плагинами скрипты, это всётаки скрипты, то нельзя ли их выпилить со страницы силами 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>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 29.10.2012 в 00:17.
Ответить с цитированием
  #24 (permalink)  
Старый 29.10.2012, 00:11
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от BallsShaped
melky, инспектор элементов в firebug позволяет просматривать элементы внутри iframe на другом домене, что как бы намекает, что дополнение исполняется и в iframe.
это замечательно, но какое отношение это имеет глобальному объекту новосозданного окна, к которому имеет доступ только код в замыкании?

Сообщение от DjDiablo
Кстатии, раз уж внедрённые плагинами скрипты, это всётаки скрипты, то нельзя ли их выпилить силами со страницы силами javascript'а ?.
но evil-скрипт уже исполнился, каков результат будет от его удаления?

Последний раз редактировалось melky, 29.10.2012 в 00:27.
Ответить с цитированием
  #25 (permalink)  
Старый 29.10.2012, 00:26
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Сообщение от melky
какое отношение это имеет глобальному объекту новосозданного окна, к которому имеет доступ только код в замыкании?
Я не знаю, я просто предположил. Хотя, возможно, это все же решение. Скорее всего, пока фрейм не вставлен в dom, дополнения не исполняются. Проверить это я смогу не раньше, чем завтра.
Ответить с цитированием
  #26 (permalink)  
Старый 29.10.2012, 01:06
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от melky
// и так же параноить со всеми методами
ну вот, хоть один разумный вариант)))

тока не:
frame.contentWindow.Function.toString
а вот:
frame.contentWindow.Function.prototype.toString
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #27 (permalink)  
Старый 29.10.2012, 01:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от BallsShaped
Проверить это я смогу не раньше, чем завтра.
// 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 - не заменяли
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #28 (permalink)  
Старый 29.10.2012, 01:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от devote
ну вот, хоть один разумный вариант)))

тока не:
frame.contentWindow.Function.toString
а вот:
frame.contentWindow.Function.prototype.toString
думал, что же лучше выбрать, но остановился на более коротком варианте

да и какая разница, собственно ?

alert(Function.prototype.toString === Function.toString);


Сообщение от devote Посмотреть сообщение
// 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 - не заменяли
если не изменяет память, нужно дождаться события load у фрейма ... нет? похоже, я уже сплю
Ответить с цитированием
  #29 (permalink)  
Старый 29.10.2012, 02:07
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от melky
если не изменяет память, нужно дождаться события load у фрейма
ну если ты что-то хочешь найти в DOM-объекте фрейма то да, а для получения нативного конструктора объектов, ждать не обязалово.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #30 (permalink)  
Старый 29.10.2012, 05:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от iMaxmaxmaximus
Тред не читал
а стоило бы, что бы не иметь подобных фраз
Сообщение от iMaxmaxmaximus
безопасность нуливая
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрыть из исходного кода часть javascript кода. javasc Javascript под браузер 10 12.03.2014 09:32
Рег.выражения, подсветка кода lynch1 Events/DOM/Window 6 17.12.2012 20:04
Пример кода сохранения в базу html страницы генерированного посредством JavaScripts wayzer Серверные языки и технологии 2 06.09.2012 16:46
TabPanel загрузка кода с сервера Jevgeny ExtJS 5 07.12.2010 15:35
Добавление методов к стандартным объектам и совместимость кода Василий Б. Общие вопросы Javascript 10 20.07.2010 12:00