Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 nightrainbow.info и др.: проблема с UTF-16
 Сайт -> Форумы » Помогите убрать баннер...
Следующая тема
Предыдущая тема

Новая тема  Ответить
Автор Сообщение
taimael
Junior Member
Junior Member


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

СообщениеДобавлено: Пн, Окт 31 2005 08:38 Цитировать |  |  | 

извиняюсь, если не по теме...

http://www.nightrainbow.info/kartasajta.htm

у когонить открывается на RU-сборке?
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пн, Окт 31 2005 09:53 Цитировать |  |  | 

Это не html-страницы, поэтому они не открываются и без Прокса. Кто-то файлы в юникоде не умеет для веба писать..
К началу Профиль Сообщение
taimael
Junior Member
Junior Member


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

СообщениеДобавлено: Вт, Ноя 01 2005 00:07 Цитировать |  |  | 

гм, у меня открываются и в опере и в IE
собственно, потому и запостил...
сейчас это у меня единственное чудо-юдо в bypass-листе Smile
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вт, Ноя 01 2005 09:53 Цитировать |  |  | 

taimael

И что, верху страниц никакого мусора нет?

Это надо было придумать так надругаться над html: страница из Front Page, закодированная в UTF-16LE и с двумя байтами UTF-маркера в начале каждого файла, которых на вебе не должно быть. Естественно, никакой http-заголовок не намекает на кодировку содержимого, а строчка из контента "charset=unicode" не читается браузером, т.к. находится не в html-контексте (из-за маркера).

Думаю, для обхода этой кривизны можно сделать фильтр, который будет выкидывать всё перед тегом <HTML>. Глядишь, и для других сайтов пригодится..
К началу Профиль Сообщение
taimael
Junior Member
Junior Member


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

СообщениеДобавлено: Ср, Ноя 02 2005 08:51 Цитировать |  |  | 

вот что я получил в опере (сайт в bypass-листе)


Код:
<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<title>NightRainbow.info - Карта сайта</title>
<style>
...
      <a href="mailto:night_rainbow@rambler.ru?subject=pismo">
      <img border="0" src="pics/email.gif" width="60" height="21" align="left"></a></font></td>
   </tr>
</table>

</body>

</html>



при загрузке через RU-сборку получаю мусор


Последний раз редактировалось: taimael (Чт, Ноя 03 2005 09:16), всего редактировалось 1 раз
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Ср, Ноя 02 2005 10:31 Цитировать |  |  | 

taimael
Телнетом проверь -- тогда и выкладывай. А это просто результат пре-рендеринга Оперы; насколько он соответствует исходному варианту -- неизвестно.
К началу Профиль Сообщение
taimael
Junior Member
Junior Member


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

СообщениеДобавлено: Чт, Ноя 03 2005 09:17 Цитировать |  |  | 

при чем телнет? речь, что ру-сборка касячит...
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Чт, Ноя 03 2005 11:23 Цитировать |  |  | 

taimael
Цитата:
при чем телнет?

При том, что Опера в качестве исходника показывает то, что она под ним понимает, а не то, что отправил сервер. А сервер отправляет фарш: обычный заголовок без указания кодировки, затем 2 байта BOM, затем поток html-кода в UTF-16. То, что браузеры это расшифровывают -- это заслуга их эвристического анализатора кодировки; сие не означает, что автор выдал корректный контент.

Другое дело, что даже с правильным потоком в UTF-16 Прокс вряд ли справится (в любой сборке). Так что всё равно кроме bypass остаётся только отключение таким сайтам веб-фильтров. Например, так:
Код:
Name = "Bypass all HTML filters {sites} [ALX]"
Active = TRUE
URL = "([^/]++.|)nightrainbow.info/"
Limit = 8192
Match = "(?*)\1"
Replace = "\1"

Этот фильтр надо в самый верх веб-фильтров поставить. Можно то же самое делать и заголовочным фильтром, но там с сортировкой всё неочевидно -- придётся мудрить.
К началу Профиль Сообщение
taimael
Junior Member
Junior Member


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

СообщениеДобавлено: Чт, Ноя 03 2005 14:26 Цитировать |  |  | 

угу, посмотрел я, что в кэшэ лежит...
ты сказал, что у тебя и без прокса страничка не отображается, я и привел, что в опере нормально все

а можно тогда силами прокса этот utf-16 автоматом распознавать и в bypass отправлять?
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Чт, Ноя 03 2005 16:03 Цитировать |  |  | 

taimael
Цитата:
а можно тогда силами прокса этот utf-16 автоматом распознавать

Не знаю, получится ли: Прокс с двоичными данными не очень по-доброму обходится. Хотя если в base64 через $WESC() перегнать.. В общем, надо пробовать.
К началу Профиль Сообщение
dann
Гость





СообщениеДобавлено: Сб, Ноя 05 2005 06:57 Цитировать |  |  | 

еще один подобный сайт - cbid.amdclub.ru. a я блин не мог понять почему из-за проксомитрона получаются кракозябры. а обходить фильтрование наверно лучше так:
Код:

[HTTP headers]
In = FALSE
Out = TRUE
Key = "URL: dont filter sites (out)"
URL = "cbid.amdclub.ru"
Replace = "$FILTER(False)"
К началу
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Сб, Ноя 05 2005 12:25 Цитировать |  |  | 

dann

Да, опять UTF-16 с некорректным маркером в начале, и опять Microsoft в метаданных.

В заголовочных фильтрах, как я уже писал, не всё так просто. Во-первых, надо поставить фильтр последним по списку, чтобы отработали все предыдущие -- это позволит всё-таки отфильтровать большую часть рекламы и прочей ерунды. Во-вторых, обработку анимированных гифов отключать не надо, а $FILRTER() это может. Можно для начала попробовать вот такой вариант:

Код:
In = FALSE
Out = TRUE
Key = "Z5: Bypass all HTML filters (Out) {sites} [ALX]"
URL = "( ([^/]++.|)nightrainbow.info | cbid.amdclub.ru)/"
Match = "(^$URL(*.(gif|jpg|jpeg|swf|png)(^?)))"
Replace = "$FILTER(False)Web filters disabled"
К началу Профиль Сообщение
Гость






СообщениеДобавлено: Вс, Ноя 06 2005 04:21 Цитировать |  |  | 

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

[Patterns]
Name = "Replace Math.random"
Active = TRUE
URL = "$TYPE(htm)(^*gameguru*)"
Limit = 8
Match = "<HTML>"
Replace = "$STOP()<HTML>\r\n<script src="http://local.ptron/ReplaceRandom.js"></script>\r\n"

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

[Patterns]
Name = "Check Unicode"
Active = TRUE
Limit = 8
Match = "(яю)\0$URL(http(s|)://\1)$ADDLSTBOX(Unicode, Мля. Еще один в Unicode..., \1)|"
Replace = "$STOP()\0"
К началу
dann
Гость





СообщениеДобавлено: Вс, Ноя 06 2005 04:55 Цитировать |  |  | 

Idea дошло... $FILTER() запрещает и заголовочные фильтры потому и должен быть последним. тогда для запрета фильтрования можно след. фильтр
Код:

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Z: Dont filter (in)"
Match = "$IHDR(Content-Type: text/html)$URL(http(s|)://$LST(Unicode)*)"
Replace = "$FILTER(False)"

пропускает все заголовочные входящие/исходящие фильтры, гифы вроде не трогает
К началу
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вс, Ноя 06 2005 18:44 Цитировать |  |  | 

dann

text/html -- это далеко не весь фильтруемый контент; скрипты, стили и т.п. тоже могут быть в UTF-16.

Маркер тут ни при чём: он есть и для UTF-8, а если его нет --это не значит, что кодировка не UTF-16. Его просто надо убить.
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




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


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