Автор |
Сообщение |
taimael
Junior Member

Зарегистрирован: 22.01.2005
Сообщения: 34
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

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

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

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
taimael
И что, верху страниц никакого мусора нет?
Это надо было придумать так надругаться над html: страница из Front Page, закодированная в UTF-16LE и с двумя байтами UTF-маркера в начале каждого файла, которых на вебе не должно быть. Естественно, никакой http-заголовок не намекает на кодировку содержимого, а строчка из контента "charset=unicode" не читается браузером, т.к. находится не в html-контексте (из-за маркера).
Думаю, для обхода этой кривизны можно сделать фильтр, который будет выкидывать всё перед тегом <HTML>. Глядишь, и для других сайтов пригодится..
|
|
|
К началу |
Профиль Сообщение |
 |
taimael
Junior Member

Зарегистрирован: 22.01.2005
Сообщения: 34
|
вот что я получил в опере (сайт в 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

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

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

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
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

Зарегистрирован: 22.01.2005
Сообщения: 34
|
угу, посмотрел я, что в кэшэ лежит...
ты сказал, что у тебя и без прокса страничка не отображается, я и привел, что в опере нормально все
а можно тогда силами прокса этот utf-16 автоматом распознавать и в bypass отправлять?
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
taimael
Цитата: |
а можно тогда силами прокса этот utf-16 автоматом распознавать |
Не знаю, получится ли: Прокс с двоичными данными не очень по-доброму обходится. Хотя если в base64 через $WESC() перегнать.. В общем, надо пробовать.
|
|
|
К началу |
Профиль Сообщение |
 |
dann
Гость
|
еще один подобный сайт - 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

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
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" |
|
|
|
К началу |
Профиль Сообщение |
 |
Гость
|
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
Гость
|
 дошло... $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

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
dann
text/html -- это далеко не весь фильтруемый контент; скрипты, стили и т.п. тоже могут быть в UTF-16.
Маркер тут ни при чём: он есть и для UTF-8, а если его нет --это не значит, что кодировка не UTF-16. Его просто надо убить.
|
|
|
К началу |
Профиль Сообщение |
 |
|