Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 Kill JavaScript Banners {^sites} [ALX]
 Сайт -> Форумы » Фильтры
Следующая тема
Предыдущая тема

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


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

СообщениеДобавлено: Пн, Май 15 2006 11:20 Цитировать |  |  | 

Добавил строчку для подчистки следов счётчиков:
Код:
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ ) | ([^./]+.fastbb.ru/index.pl) )"
Bounds = "$NEST(<script,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 4096
Match = "$NEST(<script,>)"
        "\0"
        "("
        "://$LST(AdList)|"
        "adclick|"
        "adcycle|"
        ".submit\(*focus\(|"
        "super_flashFileURL|"
        "banner_height|"
        "<iframe|"
        "'ht'\+|"
        "aa4_show|"
        ""<sc" \+ "ript|"
        ""<scr" \+ "ipt|"
        "<script*<script|"
        "d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
        ")\1"
        "\9"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
          "busted= [$ESC(\1)]"
          "\0\1\9"


Последний раз редактировалось: chAlx (Пн, Май 15 2006 19:24), всего редактировалось 2 раз(а)
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пн, Май 15 2006 17:45 Цитировать |  |  | 

Kill JavaScript Banners {^sites} [ALX] на страницах-ответах ( [^.]+.fastbb.ru/index.pl ) гостевых прячет форму ответа.

Kill fastbb JavaScript banners [ALX] не срабатывает нигде, видимо уже не нужен
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пн, Май 15 2006 19:24 Цитировать |  |  | 

lexxICON:

Ссылки надо приводить! Пока найдёшь, кто из них страницы-ответы..

Фильтр в последнем посте обновил, он ещё и был создан не из самой свежей версии. ФастББ опять извратился, как никто: засунули рекламу в тот же скрипт, что и нормальный JS-код.
К началу Профиль Сообщение
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Вт, Май 16 2006 10:45 Цитировать |  |  | 

Вообще-то он у меня и без последнего изменения работал...
К началу Профиль Сообщение ICQ
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Пн, Май 22 2006 11:59 Цитировать |  |  | 

chAlx, а в фильтре границы задавать <noscript></noscript> необходимо?
Я почему спрашиваю - заметил, что с noscript стал пропускаться счетчик от spylog и все банеры слепленные по тому же типу: скрипт+носкрипт(айфрейм)

Вот наглядный пример http://www.inosmi.ru/stories/01/06/28/3008/227319.html - приходится либо убирать <noscript></noscript> либо включать multiple matches
К началу Профиль Сообщение Отправить e-mail
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Сб, Май 27 2006 14:57 Цитировать |  |  | 

Мда... перемудрил малость chAlx. Это я его видимо сбил :)

Замени границы на
Код:
$NEST(<script,\2,</script>)( $NEST(<noscript>,</noscript>)|)


А замену на:
Код:
<script title=JS_Banner_blocked language=ShonenScript>
busted= [$ESC(\1)]
\2
</script>


Это так - по простому, а вообще то просто надо чтоб не запоминался фрагмент из noscript
К началу Профиль Сообщение ICQ
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вт, Июн 06 2006 09:32 Цитировать |  |  | 

Приведите уже пример кода, который неправильно обрабатывается. У меня все сайты с примерами прочищаются нормально.

Причём тут <noscript>? Если проблема в том, что он не вырезается -- так и пусть себе. Содержимое этого тега обрабатывается примерно так же, как содержимое <script language=ShonenScript>.
К началу Профиль Сообщение
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Вт, Июн 06 2006 16:52 Цитировать |  |  | 

chAlx писал(а):
Приведите уже пример кода, который неправильно обрабатывается. У меня все сайты с примерами прочищаются нормально.

Причём тут <noscript>? Если проблема в том, что он не вырезается -- так и пусть себе. Содержимое этого тега обрабатывается примерно так же, как содержимое <script language=ShonenScript>.

Видимо проблема в том, что браузер Опера (8) обрабатывает следующий код, хотя по идее, как я понимаю, не должен.
Код:
<script title=JS_Banner_blocked language=ShonenScript>busted= [%3Ciframe]
// <!--
var rbn_login = "ino_slot_150x80_3";
var rbn_options = "";
var rbn_random = Math.round(Math.random() * 100000);
document.write('<iframe src="http://rotabanner.rian.ru/cgi-bin/iframe/'+rbn_login+'?'+rbn_random +'&'+rbn_options+'" marginwidth=0 marginheight=0 scrolling=no frameborder=0 width=150 height=80><a href="http://rotabanner.rian.ru/cgi-bin/href/'+rbn_login+'?'+rbn_random +'" target=_top><img src="http://rotabanner.rian.ru/cgi-bin/banner/'+rbn_login+'?'+rbn_random +'&'+rbn_options+'" alt="Баннерообменная сеть РИА Новости" border=0 ismap width=150 height=80></a></iframe>');
// -->
</script>

<noscript>
<iframe src="http://rotabanner.rian.ru/cgi-bin/iframe/ino_slot_150x80_3" marginwidth=0 marginheight=0 scrolling=no frameborder=0 width=150 height=80><a href="http://rotabanner.rian.ru/cgi-bin/href/ino_slot_150x80_3" target=_top><img src="http://rotabanner.rian.ru/cgi-bin/banner/ino_slot_150x80_3" alt="Баннерообменная сеть РИА Новости" border=0 ismap width=150 height=80></a></iframe>
</noscript>
К началу Профиль Сообщение Отправить e-mail
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Вт, Июн 06 2006 17:05 Цитировать |  |  | 

Это почему это не должен? Как раз очень даже должен. Собственно для того тэг <noscript> и существует, чтоб выполнятся, если не возможно выполнить скрипт...
К началу Профиль Сообщение ICQ
lexxICON
Platinum Member
Platinum Member


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

СообщениеДобавлено: Вт, Июн 06 2006 18:01 Цитировать |  |  | 

я так думал, что <script title=JS_Banner_blocked language=ShonenScript> за скрипт не считается, а отображение <noscript> так вообще определяется браузером afaik глобально, а глобально у меня js включены
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вт, Июн 06 2006 18:15 Цитировать |  |  | 

Хм.. Да, пожалуй, рендерить ли браузеру ноускрипт после скрипта на неизвестном языке -- вопрос неоднозначный. Кто бы мог подумать..

Сделал, как предлагалось:

Код:
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ ) | ([^./]+.fastbb.ru/index.pl) )"
Bounds = "$NEST(<script*>,\0,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 4096
Match = "$NEST(<script,>)"
        "*"
        "("
        "://$LST(AdList)|"
        "adclick|"
        "adcycle|"
        ".submit\(*focus\(|"
        "super_flashFileURL|"
        "banner_height|"
        "<iframe|"
        "'ht'\+|"
        "aa4_show|"
        ""<sc" \+ "ript|"
        ""<scr" \+ "ipt|"
        "<script*<script|"
        "d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
        ")\1"
        "*"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
          "busted= [$ESC(\1)]"
          "\0"
          "</script>"


Последний раз редактировалось: chAlx (Вт, Июн 06 2006 20:44), всего редактировалось 1 раз
К началу Профиль Сообщение
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Вт, Июн 06 2006 18:39 Цитировать |  |  | 

Ну не знаю... Помоему он на то и <noscript>, чтоб использоваться, если не известно что со скриптом делать...
А кстати вот:

from HTML 4.01 Specification:
The NOSCRIPT element allows authors to provide alternate content when a script is not executed. The content of a NOSCRIPT element should only be rendered by a script-aware user agent in the following cases:
* The user agent is configured not to evaluate scripts.
* The user agent doesn't support a scripting language invoked by a SCRIPT element earlier in the document.

User agents that do not support client-side scripts must render this element's contents.
К началу Профиль Сообщение ICQ
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вт, Июн 06 2006 21:20 Цитировать |  |  | 

Млин, опять не из той версии переделал фильтр.. Исправил.

Изначально <noscript> придумала Netscape как расширение для HTML3:
Цитата:
NOSCRIPT
(alternative text for JavaScript)
The NOSCRIPT tag specifies the content for a browser to display when JavaScript is not available or enabled.

Поэтому так и повелось в браузерах.. Возможно даже, что обработка этого тега зависит от указанного для документа Doctype.

IMHO довести идею следования стандартам до абсурда стало реально сравнительно недавно, когда довели до ума CSS2. Тогда Опера на это и пошла (что-то около 7-й версии).

А Мозилла в этом смысле идёт каким-то своим путём: вроде и стандартов придерживаются, но некоторые устоявшиеся правила не меняют (хотя это больше относится к quirks mode -- версия рендеринга для кривого кода).

Вот интересное обсуждение по этому поводу (началось как раз из-за скриптов счётчика).
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Вс, Янв 18 2009 14:15 Цитировать |  |  | 

Обновлённая версия:

Код:
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ | [^./]+.fastbb.ru/index.pl) )"
Bounds = "$NEST(<script*>,\0,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 6000
Match = "$NEST(<script,>)"
        "*"
        "("
        "://$LST(AdList)|"
        "adclick|"
        "adcycle|"
        ".submit\(*focus\(|"
        "super_flashFileURL|"
        "banner_height|"
        "<iframe|"
        ""<" \+ "if" \+ "RaMe|"
        "'ht'\+|"
        "aa4_show|"
        ""<sc" \+ "ript|"
        ""<scr" \+ "ipt|"
        "<script*<script|"
        "%3Cscript|"
        "d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
        ")\1"
        "*"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
          "busted= [$ESC(\1)]"
          "\0"
          "</script>"
К началу Профиль Сообщение
Nan0miT
Platinum Member
Platinum Member


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

СообщениеДобавлено: Вт, Янв 20 2009 20:52 Цитировать |  |  | 

Встретил вариант добавления баннеров через addEvent().

Сам скрипт можно посмотреть здесь:
http://www.developers.org.ua/static/js/spt.js

Баннеры добавляются в определенные дивы на странице при загрузке строкой: addEvent(window, 'load', функция);

Можно исключать их для каждого сайта отдельно, фильтром типа:
Код:
[Patterns]
Name = "Script Events 200109 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)developers.org.ua/"
Limit = 256
Match = "(addEvent(\s|)\((\s|)window(\s|),(\s|)'load')\1"
Replace = "// \1"



Но может есть решение получше?
К началу Профиль Сообщение
1ik
Junior Member
Junior Member


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

СообщениеДобавлено: Ср, Янв 21 2009 00:52 Цитировать |  |  | 

Nan0miT
конкретно этот скрипт проще зарезать по URL , раз уж он известен.
А другие подобные (если они существуют), имхо аккуратнее по Math.random()
К началу Профиль Сообщение
Nan0miT
Platinum Member
Platinum Member


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

СообщениеДобавлено: Ср, Янв 21 2009 04:34 Цитировать |  |  | 

1ik писал(а):
Nan0miT
конкретно этот скрипт проще зарезать по URL , раз уж он известен.
А другие подобные (если они существуют), имхо аккуратнее по Math.random()


Math.random есть не всегда. Поищу еще примеры.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

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

Nan0miT:

Конкретно для данного типа скриптов я бы завязался на что-то простое и понятное, типа "function initBanners()". Это если оно ещё где-то встречается (если нет -- в AdList).
К началу Профиль Сообщение
1ik
Junior Member
Junior Member


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

СообщениеДобавлено: Чт, Янв 22 2009 06:21 Цитировать |  |  | 

chAlx писал(а):
простое и понятное, типа "function initBanners()"

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


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

СообщениеДобавлено: Чт, Янв 22 2009 11:01 Цитировать |  |  | 

1ik писал(а):
в другом скрипте функцию могут назвать не так понятно

Ну и пусть, зато однозначно: Math.random() всё же общеупотребительная функция и может использоваться вполне легально (например, в визуальных эффектах и играх). А в других скриптах другими фильтрами почистить можно.

Впрочем, кому что нравится: чем более общие фильтры, тем больше ложных срабатываний, зато меньше возни с рекламой.
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




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


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