Форум
www.proxomitron.ru
Все о программе Proxomitron
Главная
•
FAQ для форума
•
Поиск
•
Пользователи
•
Группы
•
Регистрация
•
Профиль
•
Личные сообщения
•
Вход
Ответить
Сайт
->
Форумы
»
Безопасность
» Ответить
Ответить
Имя:
Код подтверждения (спамеры, обратите внимание: на нашем форуме ссылки НЕ ОТОБРАЖАЮТСЯ):
--(
)--
Введите код с правой картинки
Тема:
 
Сообщение:
Смайлики
Дополнительные смайлики
Размер шрифта:
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="chAlx"][b]Partyzan[/b]: Всё правильно, только вот это не понял: [quote]utf8: от 1-го до 6-ти символов.[/quote] Возможно, имелось ввиду, что длина битовой последовательности для кодирования одного символа варьируется от 8 до 32 бит?[/quote]
Настройки:
HTML
ВКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении HTML
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Обзор темы
Автор
Сообщение
Partyzan
Добавлено: Пн, Май 18 2009 23:17 Заголовок сообщения:
Update: тот сайтик исправился, и других подобных особо замечено не было.
Partyzan
Добавлено: Чт, Авг 31 2006 01:03 Заголовок сообщения:
Сам удивился, всегда считал, что там фиксированно два байта на символ.
Вообще, для перекодировки надо глубже вкопаться, только мне это пока неинтересно, мало сайтов на юникоде таком извращенном, что не фильтруются элементы.
chAlx
Добавлено: Вт, Авг 29 2006 18:41 Заголовок сообщения:
Partyzan
:
Всё правильно, только вот это не понял:
Цитата:
utf8: от 1-го до 6-ти символов.
Возможно, имелось ввиду, что длина битовой последовательности для кодирования одного символа варьируется от 8 до 32 бит?
Partyzan
Добавлено: Вт, Авг 29 2006 07:29 Заголовок сообщения:
Перекодировать можно, но это уже тема для немного другого обсуждения, я думаю. Просто надо убить энное количество времени и внимательно составить блоклист. Согласен с
chAlx
, хорошо бы это перекодировать в cp1251.
Про
ту тему
- а вот хрен таким сайтам, а не байпасс. Лучше уж кракозябры лицезреть, чем на баннеры и прочее. Это мое личное мнение, конечно - думаю, большинство с этим не согласится :-)
Сейчас полез смотреть, что это за зверь BOM, и понял, что все немного глубже, чем кажется.
Отсюда
:
unicode - это не кодировка. Это абстрактное описание.
"Hello": 00 48 00 65 00 6C 00 6C 00 6F
"Hello": 48 00 65 00 6C 00 6C 00 6F 00
Делают и так, и так. "FE FF" -- BOM -- Unicode Byte Order Mark. UCS-2/UTF-16, два варианта из-за BOM
utf8: от 1-го до 6-ти символов. Если буквы только латинские, то совпадает с ASCII.
А ещё бывают UTF-7 и UCS-4, и это не всё.
chAlx
Добавлено: Пн, Авг 28 2006 12:10 Заголовок сообщения:
Во-первых, про сайты в юникоде, а конкретно в UTF-16, есть
весьма подробная тема
. Т.е. описание проблемы там подробное, а вот решения нет.
Но насчёт
[%00]
-- это сильно. Спасибо,
vital mogilny
, за наводку! Это ведь, значит, и русские тексты можно парсить, и вообще.. В общем, здорово. И ведь в
Changes.txt
всё написано -- а я не знал :(
Пока туда не лазил, но вижу очевидный вариант: конвертировать весь UTF-16 во что-нибудь попроще, вплоть до cp1251. Примерно как
Sidki
, только попроще: BOM сразу и везде выкидывать, а перекдировку осуществлять для определённых сайтов по блоклисту символов:
[%00][%20]$SET(0= )
и т.п.
vital mogilny
Добавлено: Вс, Авг 27 2006 15:26 Заголовок сообщения:
Мне показалось, что работает твой вариант не совсем корректно - на приведенной, в качестве примера странице сбивалось форматирование. А чтобы "запустить" чистку юникода из набора Sidki нужно импортировать четыре нижеприведенных фильтра:
Цитата:
[Patterns]
Name = "Top All Mark: Start 4.07.11 (multi) [sd] (d.r)"
Active = TRUE
Multi = TRUE
URL = "^$TST(spBounds=*)"
Limit = 1
Match = "$STOP()"
Replace = "\ø\þ\ø"
Name = "Top Remove: Unicode BOM: HTML 6.02.23 (multi) [sj sd] (d.1)"
Active = TRUE
Multi = TRUE
URL = "$TYPE(htm)(^$TST(spBounds=*)|$TST(keyword=*.a_code.*))"
Limit = 1024
Match = "øþø$STOP()"
"("
"[%ff][%fe]$SET(1=le_low)"
"|[%fe][%ff]$SET(1=be_high)"
"($TST(volat=*.log:[12]*)$ADDLST(Log-Rare,WEB HTML_Unicode html\t\1 \t\u)|)"
"|([^%00][%00][^%00][%00][^%00][%00])\0$SET(1=le_low)"
"($TST(volat=*.log:[12]c.*)$ADDLST(Log-Rare,WEB HTML_Unicode html - No BOM\t\1 \t\u)|)"
"|?*[%ff][%fe]([^%00][%00][^%00][%00][^%00][%00])\0$SET(1=le_low)"
"($TST(volat=*.log:[12]c.*)$ADDLST(Log-Rare,WEB HTML_Unicode html - Top UTF8\t\1 \t\u)|)"
")"
""
"&(^*<html)$SET(bom=\1)"
"($TST(volat=*.log:2*)$ADDLST(Log-Main,[$DTM(d T)]\tWEB HTML_Unicode html\t\1 \t\u)|)"
Replace = "øþø\0"
Name = "Top Remove: Unicode BOM: Other 5.01.21 (multi) [sj sd] (d.1)"
Active = TRUE
Multi = TRUE
URL = "(^$TYPE(htm)|$TST(keyword=*.a_code.*))|$TST(volat=*.txt2html:3*)"
Limit = 6
Match = "øþø$STOP()"
"("
"[%ff][%fe]$SET(bom=le_low)"
"|"
"[%fe][%ff]$SET(bom=be_high)"
")"
"($TST(volat=*.log:2*)$ADDLST(Log-Main,[$DTM(d T)]\tWEB HTML_Unicode other\t$GET(bom) \t\u)|)"
Replace = "\ø\þ\ø"
Name = "UTF-16 to UTF-8 Page Converter 5.07.01 (multi) [sj sd mona] (d.1)"
Active = TRUE
Multi = TRUE
Limit = 192
Match = "(^$TST(bom=*))$STOP()PrxFail$TST()"
"|"
"("
""
"($TST(bom=le_low)(?)\#[%00]$SET(bom=le_low_ok)|$TST(bom=le_low_ok))"
"((?)\#[%00]|?[%20-%7E]$SET(#= )|??$SET(#=-))+{1,*}"
"|"
"($TST(bom=be_high)[%00](?)\#$SET(bom=be_high_ok)|$TST(bom=be_high_ok))"
"([%00](?)\#|[%20-%7E]?$SET(#= )|??$SET(#=-))+{1,*}"
""
")"
"$SET(dump=$GET(dump)\@)"
"|"
"(^?)$STOP()(^$TST(protect=1))$SET(bom=)$SET(stack=$GET(dump))$SET(dump=)$SET(1=$GET(stack))"
"($TYPE(htm)$SET(eExploit=$GET(eExploit)<span class=ProxFlyVar>unicode page</span><br />)|)"
Replace = "\1$SET(stack=)"
Name = "Top All Mark: End 5.11.17 [sd] (d.r)"
Active = TRUE
Limit = 3
Match = "øþø$SET(mHtml=0)$STOP()"
Мне, к сожалению, так и не удалось понять принципы его работы. Но ориентируется он изначально, судя по всему, на "яю".
Partyzan
Добавлено: Вс, Авг 27 2006 01:40 Заголовок сообщения:
В общем-то, думаю, каждый под себя фильтры пишет, а что не свое, то разбирается на кирпичики, осмысливается и вставляется в свой код.
Спасибо, полазил я по тому набору, как там идет работа с юникодом, не осознал, зато выяснил, что [%00] - нулевой символ. Соответственно, если его поубивать, то текст будет фильтроваться.
Втупую удалять не получилось, в конечном итоге решил брать кусками, делать цикл по повторам и записывать результат в стековую переменную. Стабильности хватания кусков я не добился, решил брать от угловой скобки до скобки.
Пару часов убил на отладку, получилось вот такое:
Name = "Патчим юникод --Partyzan"
Active = TRUE
Multi = TRUE
Limit = 512
Match = "([<>])\2
([%00]|[%01]|[%02]|[%03]|[%04])
(([^%00])\#
([%00]|[%01]|[%02]|[%03]|[%04])
)++([<>])\3"
Replace = " \2\@\3"
С точки зрения безопасности неплохо, фильтры работают, оформление сохраняется. Теряется только весь неанглийский текст.
vital mogilny
Добавлено: Сб, Авг 26 2006 13:31 Заголовок сообщения:
По адресу
http://www.geocities.com/sidki3003/prox-down.html
есть неплохой, но очень непростой набор фильтров.
У него, в частности, есть возможность работы с юникодом.
К сожалению, все кириллические символы он превращает в минусы.
Partyzan
Добавлено: Сб, Авг 26 2006 05:04 Заголовок сообщения: HTML в юникоде - не фильтруется
Нашел вот такой сайтик
http://www.lambounfall.de/indexr.html
То, что он тип странички как видео отдает, это еще полбеды, поправил. Но вот там внутри - <html>яю< h t m l > < h e a d > ....
яю - это стандартное начало медиафайлов, возможно есть расчет на то, что IE будет автоматом что-то проигрывать. А дальше идет HTML, но в юникоде, после каждого символа стоит нулевой символ. В тексте еще местами видны вкрапления данных. Ни Проксомитрон такое не фильтрует, ни Мозилла не открывает. В IE открывать как-то не хочется, еще подумает, что это играть надо, ну его :-)
Как такое чудо преобразовать в нормальный вид можно, чтобы фильтры работали? Ну то есть, в общем случае, вдруг еще кто додумается до такого изврата. У меня пока только есть мысль повырезать нулевые символы, что тоже пока неясно как сделать.
Когда на страничке фильтры не работают - это ж ЧП, блин.
Сайт
->
Форумы
»
Безопасность
» Ответить
Перейти:
Выберите форум
Решение проблем
----------------
Общие вопросы
Помогите убрать баннер...
Фильтры
Другие программы
Безопасность
Обсуждение
----------------
Флeйм
Работа сайта
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