Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 Определение ОСи, языка и проч. (User-Agent и т.п.)
 Сайт -> Форумы » Безопасность
Следующая тема
Предыдущая тема

Новая тема  Ответить
Автор Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Чт, Янв 12 2006 14:05 Цитировать |  |  | 

Дата/время в JScript определяется примерно так:
Код:
var now = new Date();

За функционирование скриптового языка отвечает браузер, в котором могут быть настройки того, что позволять скриптам (как в Мозилле). Но пока этих настроек маловато.
К началу Профиль Сообщение
Dmitry
Junior Member
Junior Member


Зарегистрирован: 23.11.2005
Сообщения: 34

СообщениеДобавлено: Чт, Янв 12 2006 14:56 Цитировать |  |  | 

chAlx писал(а):
[/code]
(как в Мозилле)

а какой там файл (за них отвечает)? в опере же есть всякие UserJS- это не то?
К началу Профиль Сообщение
Dmitry
Junior Member
Junior Member


Зарегистрирован: 23.11.2005
Сообщения: 34

СообщениеДобавлено: Чт, Янв 12 2006 16:38 Цитировать |  |  | 

chAlx писал(а):

Код:
var now = new Date();



вот функция из одной штраници

Код:

      function show_local_date( date_string ) {
         myDiv = document.getElementById( 'divLocalDate' );
         if ( myDiv ) {
            var x = ( ( document.getElementById && ! document.all ) ? nsmousepos.pageX : event.x + ietruebody().scrollLeft ) + 20;
            var y = ( ( document.getElementById && ! document.all ) ? nsmousepos.pageY : event.y + ietruebody().scrollTop ) - 40;
            if ( myDiv.style.visibility == 'hidden' ) {
               myDiv.style.visibility = 'visible';
               myDiv.innerHTML = '<strong>Your local time:</strong><br />' + date_string;
            }
            if ( y < 0 ) {
               y = 0;
            }
            myDiv.style.top = y + 'px';
            myDiv.style.left = x + 'px';
         }
      }
      function hide_local_date() {
         myDiv = document.getElementById( 'divLocalDate' );
         if ( myDiv ) {
            myDiv.style.visibility = 'hidden';
            myDiv.innerHTML = '';
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Чт, Янв 12 2006 17:25 Цитировать |  |  | 

Dmitry:
Приведённые две функции сделаны для отображения даты, передаваемой в них готовой строкой.
К началу Профиль Сообщение
Ciber SLasH
Member
Member


Зарегистрирован: 07.11.2005
Сообщения: 70
Откуда: Россия::Питер

СообщениеДобавлено: Чт, Янв 12 2006 20:12 Цитировать |  |  | 

2Dmitry:
Тебе нужно изучить HTML+JavaScript для понимания того, как работают и что делают скрипты. Инфы море, хотябы скачай справочник по JavaScript.

Данные реестра через JS не передать. Только через IE ниже 6.0 можно было через ActiveX передать данные реестра, но после IE 6.0 это запретили.

Время (как и вся прочая инфа), как уже говорилось, предаётся через: ссылки с параметрами (GET-параметрами), плавающие скрытые фреймы (опять же через GET).
Т.е. хочешь посмотреть что отсылается, то просто просмотри код страницы. Для Оперы Alt+F3/Ctrl+F3, для просмотра страницы целиком — сохрани её полностью в какую-нить папку (для Оперы: Ctrl+S, в поле тип файла выставь "Файл HTML с изображениями") и смотри что и как.
Короче если не хочешь, чтобы собирали инфу, то блокируй GET-параметры на тех сайтах, на которых ведётся сборка информации... можно ещё для таких сайтов заблокировать получение времени (фильтровать обращение к new Date).

А вообще если есть такое желание скрыться по максимуму, то поставь виртуальную машину (типа VMware), поменяй в ней время, язык, поставь любую ОС и выходи в сеть из под неё.

ЗЫ: зайди на один из лучших форумов в раздел JavaScript: http://forum.vingrad.ru/index.php?showforum=10
К началу Профиль Сообщение
Dmitry
Junior Member
Junior Member


Зарегистрирован: 23.11.2005
Сообщения: 34

СообщениеДобавлено: Пт, Янв 13 2006 11:40 Цитировать |  |  | 

Цитата:
можно ещё для таких сайтов заблокировать получение времени (фильтровать обращение к new Date).

а вот как зафильтровать? в этом и вопрос весь )

Цитата:
А вообще если есть такое желание скрыться по максимуму, то поставь виртуальную машину (типа VMware), поменяй в ней время, язык, поставь любую ОС и выходи в сеть из под неё.

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

Цитата:
ЗЫ: зайди на один из лучших форумов в раздел JavaScript: http://forum.vingrad.ru/index.php?showforum=10

Я понимаю что инфы море но если из-за каждого ньюанса сразу изучать всё со всех сторон это может плохо кончиться Wink опять же непонятно зачем тогда нужны будут форумы Shocked[/quote]
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пт, Янв 13 2006 12:22 Цитировать |  |  | 

Dmitry:
Цитата:
опять же непонятно зачем тогда нужны будут форумы

Вполне понятно зато, зачем нужны отдельно форумы по JavaScript и отдельно по Proxomitron.

Если бы ты владел JavaScript, я бы посоветовал вставлять на все странички переопределение функции (конструктора) Date(), которая возвращала бы неверное значение. А так советую не париться: это редкий случай, чтобы сервер вставлял скрипт, определяющий дату и отправляющий её обратно на сервер.
К началу Профиль Сообщение
Dmitry
Junior Member
Junior Member


Зарегистрирован: 23.11.2005
Сообщения: 34

СообщениеДобавлено: Пт, Янв 13 2006 14:28 Цитировать |  |  | 

сервер обратно отправляет и пишет историю это точно !

ты можешь ссылку подсказать по поводу постановки только этого значения для оперы? Я же не могу править чужую страницу))
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пт, Янв 13 2006 18:09 Цитировать |  |  | 

Dmitry:
Если вопрос ко мне, то я не пользусь Оперой, не закрываю доступ JS к Date() и не владею коллекцией ссылок по этому поводу. Могу только подсказать ещё "один из лучших форумов": XPoint.ru.


Последний раз редактировалось: chAlx (Пт, Янв 13 2006 23:24), всего редактировалось 1 раз
К началу Профиль Сообщение
Dmitry
Junior Member
Junior Member


Зарегистрирован: 23.11.2005
Сообщения: 34

СообщениеДобавлено: Пт, Янв 13 2006 21:51 Цитировать |  |  | 

откуда столько злости.. )

отправлять учить все подряд языки это самое умное конечно
Я думал знаете раз советы раздаёте)) и не не знал изначально например что прокс в этой задаче не поможет
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пт, Янв 13 2006 23:50 Цитировать |  |  | 

Dmitry:

Просто ты ошибочно представляешь себе назначение форумов, если хочешь от остальных, чтобы тебе дали готовое решение твоей проблемы. Форумы для обмена мнениями по конктетной теме, где каждый даёт другим, что может. Наша тема -- Проксомитрон, а для поиска ответов на смежные вопросы нам придётся искать информацию в интернете, также как и тебе. Не вижу ничего плохого, что по непрофильной теме тебе дают общие направления поиска -- это то, что есть. Тем более, когда вопрос стоит настолько узко, что никто больше с ним не сталкивался.

Так что добудь как-нибудь информацию о том, как переопределить стандартную функцию в JS, и тут тебе объяснят, как приспособить Прокс для решения этой задачи в масштабах всего веба.
К началу Профиль Сообщение
Ciber SLasH
Member
Member


Зарегистрирован: 07.11.2005
Сообщения: 70
Откуда: Россия::Питер

СообщениеДобавлено: Сб, Янв 14 2006 05:25 Цитировать |  |  | 

2Dmitry:
Цитата:
а вот как зафильтровать?

А вот так:
1) создаём каталог "JS" в "<путь>\Proxomitron\html\"
2) создаём и закидываем в созданный каталог "JS" файл с именем "fakeDate.js" со следующим содержимым:
Код:

/******************************************************************************\
Данный объект представляет собой оболочку для стандартного объекта Date.
Нужен для обмана сайтов ведущих логи по региональным стандартам пользователя.
Работает в связке с Proxomitron-ом.

© Created by Ciber SLasH [14.01.2006 @ 5:02]
\******************************************************************************/

function fakeDate() {
this.offsetYear = 0;         // смещение года
this.offsetMonth = 0;         // смещение месяца
this.offsetDate = 0;         // смещение даты
this.offsetHours = -1;         // смещение часов
this.offsetMinutes = 0;         // смещение минут
this.offsetSeconds = 0;         // смещение секунд
this.offsetTimeZone = 0;      // смещение временной зоны: -720..720
this.fTimeZoneStr = "+0200";   // фейковая временная зона
/*
Вот так мы присвоили себе время Зимбабве...
В Зимбабве время на час позже, чем в Питере
GMT+02:00 — временная зона Зимбабве
*/
var rDate = new Date;
this.fDate = new Date(rDate.getFullYear()+this.offsetYear, rDate.getMonth()+this.offsetMonth, rDate.getDate()+this.offsetDate, rDate.getHours()+this.offsetHours, rDate.getMinutes()+this.offsetMinutes, rDate.getSeconds()+this.offsetSeconds);
}

fakeDate.prototype.getTimeString = function () {
var hours = this.fDate.getHours();
var min = this.fDate.getMinutes();
var sec = this.fDate.getSeconds();
  if (hours == 0) hours = 12;
  if (min <= 9) min = "0" + min;
  if (sec <= 9) sec = "0" + sec;
return hours +":"+ min +":"+ sec;
}

fakeDate.prototype.getDate = function () {return this.fDate.getDate()}
fakeDate.prototype.getMonth = function () {return this.fDate.getMonth()}
fakeDate.prototype.getDay = function () {return this.fDate.getDay()}
fakeDate.prototype.getHours = function () {return this.fDate.getHours()}
fakeDate.prototype.getMinutes = function () {return this.fDate.getMinutes()}
fakeDate.prototype.getSeconds = function () {return this.fDate.getSeconds()}
fakeDate.prototype.getMilliseconds = function () {return this.fDate.getMilliseconds()}
fakeDate.prototype.getTime = function () {return this.fDate.getTime()}
fakeDate.prototype.getTimezoneOffset = function () {return this.fDate.getTimezoneOffset() + this.offsetTimeZone}
fakeDate.prototype.getYear = function () {return this.fDate.getYear()}
fakeDate.prototype.getFullYear = function () {return this.fDate.getFullYear()}

fakeDate.prototype.getUTCDate = function () {return this.fDate.getUTCDate()}
fakeDate.prototype.getUTCMonth = function () {return this.fDate.getUTCMonth()}
fakeDate.prototype.getUTCDay = function () {return this.fDate.getUTCDay()}
fakeDate.prototype.getUTCHours = function () {return this.fDate.getUTCHours}
fakeDate.prototype.getUTCMinutes = function () {return this.fDate.Minutes()}
fakeDate.prototype.getUTCSeconds = function () {return this.fDate.getUTCSeconds()}
fakeDate.prototype.getUTCMilliseconds = function () {return this.fDate.getUTCMilliseconds()}
fakeDate.prototype.getUTCFullYear = function () {return this.fDate.getUTCFullYear()}

fakeDate.prototype.parse = function (dateString) {return this.fDate.parse(dateString)}

fakeDate.prototype.setDate = function (dateInt) {return this.fDate.setDate(dateInt)}
fakeDate.prototype.setMonth = function (monthValue, dayValue) {this.fDate.setMonth(monthValue, dayValue)}
fakeDate.prototype.setHours = function (hoursValue, minutesValue, secondsValue, msValue) {return this.fDate.setHours(hoursValue, minutesValue, secondsValue, msValue)}
fakeDate.prototype.setMinutes = function (minutesValue, secondsValue, msValue) {return this.fDate.setMinutes(minutesValue, secondsValue, msValue)}
fakeDate.prototype.setSeconds = function (secondsValue, msValue) {return this.fDate.setSeconds(secondsValue, msValue)}
fakeDate.prototype.setMilliseconds = function (msInt) {return this.fDate.setMilliseconds(msInt)}
fakeDate.prototype.setTime = function (msInt) {return this.fDate.setTime(msInt)}
fakeDate.prototype.setYear = function (yearInt) {return this.fDate.setYear(yearInt)}
fakeDate.prototype.setFullYear = function (yearValue, monthValue, dayValue) {return this.fDate.setFullYear(yearValue, monthValue, dayValue)}

fakeDate.prototype.setUTCDate = function (dateInt) {return this.fDate.setUTCDate(dateInt)}
fakeDate.prototype.setUTCMonth = function (monthValue, dayValue) {return this.fDate.setUTCMonth(monthValue, dayValue)}
fakeDate.prototype.setUTCHours = function (hoursValue, minutesValue, secondsValue, msValue) {return this.fDate.setUTCHours(hoursValue, minutesValue, secondsValue, msValue)}
fakeDate.prototype.setUTCMinutes = function (minutesValue, secondsValue, msValue) {return this.fDate.setUTCMinutes(minutesValue, secondsValue, msValue)}
fakeDate.prototype.setUTCSeconds = function (secondsValue, msValue) {return this.fDate.setUTCSeconds(secondsValue, msValue)}
fakeDate.prototype.setUTCMilliseconds = function (msInt) {return this.fDate.setUTCMilliseconds(msInt)}
fakeDate.prototype.setUTCFullYear = function (yearValue, monthValue, dayValue) {return this.fDate.setUTCFullYear(yearValue, monthValue, dayValue)}

fakeDate.prototype.toDateString = function () {return this.fDate.toDateString()}
fakeDate.prototype.toGMTString = function () {return this.fDate.toGMTString()}
fakeDate.prototype.toLocaleDateString = function () {return this.fDate.toDateString()}

fakeDate.prototype.toLocaleString = function () {return this.fDate.toDateString() +" "+this.getTimeString()}
fakeDate.prototype.toLocaleTimeString = function () {return this.getTimeString()}
fakeDate.prototype.toTimeString = function () {
var Result = this.fDate.toTimeString().replace(/(UTC|GMT)(\+|\-)[0-9]+/, "$1"+this.fTimeZoneStr);
return Result.substr(0, Result.indexOf(this.fTimeZoneStr) + this.fTimeZoneStr.length);
}
fakeDate.prototype.toUTCString = function () {return this.fDate.toUTCString()}
fakeDate.prototype.toString = function () {return this.fDate.toString().replace(/(UTC|GMT)(\+|\-)[0-9]+/, "$1"+this.fTimeZoneStr)}
fakeDate.prototype.valueOf = function () {return this.fDate.valueOf()}

3) создаём такие 2 фильтра:
Код:

[Patterns]
Name = "Insert fakeDate script {CS}"
Active = TRUE
URL = "*.(^css|js)*"
Limit = 256
Match = "<start>"
Replace = "<!--//--><script type='text/javascript' src='http://Local.ptron/JS/fakeDate.js'></script>\r\n"
          "\r\n"

Name = "Block JavaScript: new Date {CS}"
Active = TRUE
Multi = TRUE
Bounds = "$NEST(<script,</script>)|$NEST(<\w,*on*=$AV(*)*,(/|)>)"
Limit = 4096
Match = "\0"
        "new Date(\(\)|(^\())\1"
        "\9"
Replace = "\0"
          "new fakeDate\1"
          "\9"

4) включаем только что созданные фильтры и пытаемся открыть страницу, где есть JavaScript-код с обращением к new Date. Фильтр не фильтрует обращение к new Date(<параметры>), т.к. при таком обращении к объекту Date мы не получим время у юзера.

Для удобства лучше создать новый блок-лист для занесения в него сайтов-логгеров и включить этот блок-лист в Bounds фильтров.

***************
К знатокам:
1) почему выражение new Date(\(\)|(^\())\1 не работает на проверяемом тексте:
Цитата:

<script type='text/javascript'>
var date = new Date
var date0 = new Date;
var date1 = new Date();
var date2 = new Date(13, 1, 2005);
var date3 = new Date().getTime();
var date4 = (new Date).getTime();
</script>

<body onLoad='new Date'>
<a href='zzz' onClick='new Date'>aaa</a>
<img src='ffff' onMouseOver='new Date' />

2) почему URL-соответствие *.(^css|js)* при проверке выдаёт [Match Successful] на URL-ах заканчивающихся на .css и на .js, хотя по идеи не должны такие URL-ы проходить
***************
Цитата:
по VMware нашел много результатов в емуле .. весит от 50 до гигов)) Посоветуйте мне версию или линк.

Вот линк: http://www.vmware.com/download/ws/
Не хочешь качать 50 метров, то качни версию 4.5.3 на той странице.
У меня вообще стоит VMware 4.5.2-8848 (весит 30 Mb).

Цитата:
Я понимаю что инфы море но если из-за каждого ньюанса сразу изучать всё со всех сторон это может плохо кончиться опять же непонятно зачем тогда нужны будут форумы

Лишние знания никогда не помешают, а вообще лишних знаний не бывает. Чем больше знаешь, тем мудрее будешь.
Форумы как раз и нужны для познания, но не надо думать, что на форуме всегда тебе дадут полный ответ. Надо запомнить одну вещь, что на форуме тебе никто ничего не должен. И люди отвечающие на вопросы отвечают по мере своих возможностей, знаний, времени, желания. Т.ч. не надо кричать и обижаться, что тебе никто не помог. К тому же этот форум узкоспециализированный. Я как раз тебе дал ссылку на форум, где есть куча разделов по разным темам, в том числе и по Web-технологиям.

Цитата:
откуда столько злости.. )

Я что-то злости в этом топике не заметил, где ты увидел злость?
К началу Профиль Сообщение
Ciber SLasH
Member
Member


Зарегистрирован: 07.11.2005
Сообщения: 70
Откуда: Россия::Питер

СообщениеДобавлено: Сб, Янв 14 2006 11:53 Цитировать |  |  | 

Разобрался с первым вопросом. Выражение, как оказалось, работает только один раз.
Пришлось переписать фильтр так:
Код:

[Patterns]
Name = "Block JavaScript: new Date {CS}"
Active = TRUE
Multi = TRUE
Bounds = "$NEST(<script,</script>)|$NEST(<\w,*on*=$AV(*)*,(/|)>)"
Limit = 4096
Match = "(\#(new )\#Date(\(\)|(^\())$SET(\#=fakeDate\(\)))+ \#"
Replace = "\@"

вот только теперь всегда после fakeDate добавляются скобки. Хочется добавлять их в зависимости от их наличия, т.е. если можно было бы обращаться к предыдущей переменной, то выражение выглядило бы примерно так (\#(new )\#Date(\(\)|(^\())\#$SET(\#-1=fakeDate\#))+ \#

Кстати не понятно почему предыдущий вариант фильтра не работает многократно, хоть и Multi=TRUE. По идеи если в текст замены в начало добавить какой-нить пробельный символ, то фильтр должен находить соответствия в своих результатах, но что-то не судьба...
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Сб, Янв 14 2006 23:49 Цитировать |  |  | 

Ciber SLasH:
Грандиозно!

Сейчас не могу подробно разобраться, поэтому несколько блиц-ответов:

\#-1 должно успешно заменяться комбинацией типа \1 и $TST(1).

Повторного срабатывания нет, т.к. new fakeDate не ловится шаблоном new Date.

Фильтры как-то сложноваты для такой немудрёной задачи, как замена известной подстроки в паре известных контекстов. Посмотри, например, фильтр Suppress all JavaScript errors -- там переопределение проще делается.
К началу Профиль Сообщение
Ciber SLasH
Member
Member


Зарегистрирован: 07.11.2005
Сообщения: 70
Откуда: Россия::Питер

СообщениеДобавлено: Вс, Янв 15 2006 01:04 Цитировать |  |  | 

2chAlx:
Что-то не соображу как прикрутить $TST в фильтр выше.
Смотрел "Suppress all JavaScript errors" — но ведь это фильтр почти такой же как и первый фильтр 2-мя постами выше. Там просто вставка в начало скрипта — с этим вопросов нет, а вот со вторым фильтром... посложнее... хотя он меня почти устраивает, с той лишь разницей, что он всегда вставляет две круглые скобки после fakeDate несмотря на то, что в исходном тексте после Date может и не быть скобок — вот с этим и проблемы, не соображу как выставлять скобки взависимости от их наличия в исходном тексте после слова Date. А скобок может и не быть после Date, т.к. допустимы следующие варианты для доступа к объекту Date:
1) dt = new Date
2) dt = new Date; // отличается точкой с запятой в конце
3) dt = new Date()
4) dt = new Date () // пробел перед скобками
5) dt = new Date();
кстати фильтр сейчас не работает при new Date () (пробел перед скобками), но если добавить пробел в строке поиска после слова Date(\#(new )\#Date (\(\)|(^\())$SET(\#=fakeDate\(\)))+ \#, то он будет обрабатываться, но глючно на таком тестовом примере:
Цитата:

<script type='text/javascript'>
var date = new Date
var date0 = new Date;
var date1 = new Date();
var date2 = new Date ();
var date3 = new Date(13, 1, 2005);
var date4 = new Date().getTime();
var date5 = (new Date).getTime();
</script>

<body onLoad='new Date'>
<a href='zzz' onClick='new Date'>aaa</a>
<img src='ffff' onMouseDown='new Date' />

тут после обработки строки с переменными date и date0 сливаются в одну (т.к. после var date = new Date нету пробела, а сразу идёт новая строка. Поэтому, как я понял, поглощается перевод строки), и я не пойму что нужно сделать, чтобы этого не происходило...
К началу Профиль Сообщение
exDmitry
Гость





СообщениеДобавлено: Вс, Янв 15 2006 03:24 Цитировать |  |  | 

Цэто действительно было что-то из высшего пилотажа Confused
как "не профи" могу пока только сказать недостаток затеи: не получится универсифицировать наверно, тоесть отвечать на другие команды скриптов так как захочется ))) или уже будет нужна примочка к проксу для возможности фильтровать любые команды и скриптом и фильтрами на каждую из существующих у JavaScript команд/функций Confused сорри за сумбур Хотя если это заработает как нужно то как шаблон круто подходит


Цитата:
Вот линк: http://www.vmware.com/download/ws/
Не хочешь качать 50 метров, то качни версию 4.5.3 на той странице.
У меня вообще стоит VMware 4.5.2-8848 (весит 30 Mb).

сенькс. ато на мопеде.. Mad

Цитата:
К тому же этот форум узкоспециализированный. Я как раз тебе дал ссылку на форум, где есть куча разделов по разным темам, в том числе и по Web-технологиям.

всётаки этот форум очень близкий к такой теме) а на любом форуме нужны мемберы с разными взглядами и разных типов. это известный закон. Я вот могу написать почти любую прогу или спроектировать сложную базу данных но JavaScript и многие другие "web-технологии" покачто ну никак не укладываются в моём подсознании Wink

Цитата:
Я что-то злости в этом топике не заметил, где ты увидел злость?

а то что мне никак не войти под своим ником? Laughing хотя может это у меня чтото слетело там в wand-е
К началу
Ciber SLasH
Member
Member


Зарегистрирован: 07.11.2005
Сообщения: 70
Откуда: Россия::Питер

СообщениеДобавлено: Вс, Янв 15 2006 06:55 Цитировать |  |  | 

2Dmitry:
Цитата:
не получится универсифицировать наверно, тоесть отвечать на другие команды скриптов так как захочется

Таким макаром можно переписать весь JavaScript.
Т.е. просто переписываешь каждый объект или стандартное свойство (просто делаешь обёртку для объекта и меняешь нужные свойства) и добавляешь фильтр, который переписывает обращение к объекту/свойству на фейковый объект/свойство. Всё это можно разместить в одном JS-файле и подключать его к каждой странице.
Т.ч. здесь нужно фактически хорошо знать JS, ну и сноровку в создании фильтров Прокса.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пн, Янв 16 2006 10:36 Цитировать |  |  | 

Ciber SLasH:

Во-первых, искать вызовы надо как-то так: new Date[^a-z0-9_-].

Во-вторых, искать не надо ;). Я приводил в пример фильтр Suppress all JavaScript errors, чтобы ты посмотрел, нельзя ли само переопределение стандартных функций и объектов делать не фильтром замены, а в лоб, как там. Можно даже просто в сорец любой фильтрованной странички посмотреть:
Код:
function moveTo(){return true;}function resizeTo(){return true;}
function NoError(){return(true);} onerror=NoError;

Нельзя разве как-нибудь переопределить объект Date, либо его конструктор?

Dmitry:

Насчёт логина не знаю: в настройках юзера всё нормально. Наверное, просто повезло :)
Цитата:
Я вот могу написать почти любую прогу

Я тоже так думал, пока не занялся поплотнее. Реально получается, что для многих задач время, необходимое на то, чтобы разобраться + всё продумать + всё это реализовать и отладить, превышает не только любые разумные сроки разработки, но и время активной жизни разработчика.
К началу Профиль Сообщение
Гость
Гость





СообщениеДобавлено: Пн, Сен 17 2007 15:01 Цитировать |  |  | 

Хотел бы узнать что такое Mozilla, compatible и SV1 в строчке User-Agent
К началу
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пн, Сен 17 2007 16:54 Цитировать |  |  | 

Гость писал(а):
Хотел бы узнать что такое Mozilla, compatible и SV1 в строчке User-Agent

ХЗ, лучше сразу полную строчку давай.
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




Следующая тема
Предыдущая тема
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


P o w e r e d b y p h p B B © p h p B B G r o u p :: T h e m e b a s e d o n FI T h e m e :: Часовой пояс: GMT + 3