+  HandyCache форум
|-+  Главная категория» Дополнения, плагины» Блокировать внешние ссылки (R-ext) - расширение HC
Имя пользователя:
Пароль:
Страниц: 1 2 3 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Блокировать внешние ссылки (R-ext) - расширение HC  (Прочитано 40106 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« : 04 Ноябрь 2009, 16:13:10 »

Блокировать внешние ссылки (R-ext)

Цитировать
Версия 3.1:
[ + ] Настраиваемый уровень захвата доменов в ссылках:
        - Домены второго уровня  (рекомендуется)
        - Домены второго + первого уровня
        - Полные хосты
[ * ] Исключения для рефереров теперь работают по полному рефереру, а не только по доменам второго уровня, как раньше.

Версия 3.0:
[ + ] Графический интерфейс окна настроек.
[ + ] Поле ввода исключений для ссылок (URL) в формате рег.выражений или простом формате.
[ + ] Поле ввода исключений для рефереров (доменов второго уровня) в формате рег.выражений или простом формате.
[ + ] Возможность задать горячую клавишу или сочетание клавиш для временного отключения расширения.
[ + ] Опция: Не блокировать внешние ссылки, если файлы с таким именем уже есть в кэше.
[ + ] Опция: Учитывать при блокировании активность "Черного списка" и правила "Белого списка" HC'.
[ + ] Опция: Ограничить время блокирования внешних ссылок заданным количеством секунд.


* eR_Block_external_links-v3.1.rar (4.84 Кб - загружено 312 раз.)
« Последнее редактирование: 05 Ноябрь 2009, 21:14:07 от DenZzz » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 04 Ноябрь 2009, 18:28:32 »

В следующей версии планирую сделать:

1. Чтобы исключения для рефереров работали по полному рефереру, а не только по домену второго уровня.
2. Появится возможность выбора уровня захвата доменов для сравнения:
 - только домен 2-го уровня (как сейчас, его и рекомендуется использовать).
 - домены первого и второго уровня (жестче, будет различать доменные зоны RU, COM, NET и т.д.).
 - полный хост (самый жесткий вариант, будет требовать полного совпадения хостов).

К примеру, для ссылок вида http://suggest.yandex.ru/tsuggest-1.8.serp.html будут захватываться и сравниваться соответственно:
1: yandex
2: yandex.ru
3: suggest.yandex.ru
В случае неравенства захваченных подстрок - блокировка.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #2 : 05 Ноябрь 2009, 18:45:24 »

Блокировать внешние ссылки (R-ext) v 3.1

Цитировать
[ + ] Настраиваемый уровень захвата доменов в ссылках:
        - Домены второго уровня  (рекомендуется)
        - Домены второго + первого уровня
        - Полные хосты
[ * ] Исключения для рефереров теперь работают по полному рефереру, а не только по доменам второго уровня, как раньше.

Архив с новой версией расширения прикрепил к первому посту этой темы.
« Последнее редактирование: 05 Ноябрь 2009, 21:16:40 от DenZzz » Сообщить модератору   Записан
HKLM
Старожил
****

Репутация: +4/-1
Offline Offline

Сообщений: 293


« Ответ #3 : 05 Ноябрь 2009, 19:34:42 »

Почему оно блокирует, когда я сам открываю внешнюю ссылку на сайте? Это из за сравнения реферера с адресом? Тогда как это отключить для всех?

Еще надо бы жестче блокировать, когда страница в процессе загрузки сама тянет внешние ссылки, чтобы независимо от белого списка.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #4 : 05 Ноябрь 2009, 20:44:59 »

Почему оно блокирует, когда я сам открываю внешнюю ссылку на сайте?

Потому что нет способа достоверно узнать, сам ли ты кликнул по ссылке или это сделал за тебя браузер.
Некоторые браузеры (например, Макстон) умеют удалять из запроса реферер при клике по ссылке средней кнопкой мыши. Опера этого не умеет. FireFox вроде тоже.

Цитировать
Тогда как это отключить для всех?

Вот для этого я и сделал опцию: "Ограничить время блокирования внешних ссылок заданным количеством секунд". После истечения заданного времени после открытия страницы, переходы по внешним ссылкам блокироваться не будут. По умолчанию это время - 15 секунд. Если ты кликаешь по внешним ссылкам раньше, то уменьши это время, но тогда возможны нежелательные пропуски блокировок, особенно на медленных каналах или тормозных серверах.

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

Чтобы блокировать независимо от "Белого списка" отключи опцию: "Учитывать при блокировании активность "Черного списка" и правила "Белого списка" HC ".

« Последнее редактирование: 05 Ноябрь 2009, 20:49:09 от DenZzz » Сообщить модератору   Записан
HKLM
Старожил
****

Репутация: +4/-1
Offline Offline

Сообщений: 293


« Ответ #5 : 05 Ноябрь 2009, 21:09:40 »

Теперь понятно как оно работает.

Цитата: DenZzz
Потому что нет способа достоверно узнать, сам ли ты кликнул по ссылке или это сделал за тебя браузер.
Ну может сделать модуль слежения за мышью, который ставить на клиентские компы и пусть он передает это в НС. (Сорри, просто подумал)
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #6 : 05 Ноябрь 2009, 21:27:46 »

Ну может сделать модуль слежения за мышью, который ставить на клиентские компы и пусть он передает это в НС. (Сорри, просто подумал)

Сделай, если умеешь! Я хотел одно время через UserJS-скрипт удалять реферер при клике по ссылке, но так и не нашел способа править заголовки запроса внутри браузера.

Да и не удобно это! Надо будет писать такие модули для каждого браузера и поставить их на каждый клиентский комп и на все их браузеры. И потом постоянно следить за их работоспособностью при обновлении браузеров... Бррр...
Слишком хлопотно это всё, поэтому я и отказался от этой идеи в пользу опции: "Ограничить время блокирования внешних ссылок заданным количеством секунд"...

Сообщить модератору   Записан
Влад22
Пользователь
**

Репутация: +2/-9
Offline Offline

Сообщений: 97


« Ответ #7 : 09 Март 2010, 07:47:20 »

В новой версии HandyCache RC3 1.0.0.268 перестало работать это разширение.
При откате на HandyCache RC3 1.0.0.252 работает. Настройки не менялись, менялся только один файл HandyCache.exe
Проверено на 3 разных компьютерах, результат везде одинаковый.
Это баг новой версии или где копать?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #8 : 09 Март 2010, 07:59:52 »

Это баг новой версии или где копать?

Баг новой версии HC. Ждите обновления.

Еще можно пока попробовать отключить "лишние" расширения или поменять их порядок работы, возможно тогда R-ext заработает, но может "отвалиться" какое-нибудь другое...
Сообщить модератору   Записан
Влад22
Пользователь
**

Репутация: +2/-9
Offline Offline

Сообщений: 97


« Ответ #9 : 09 Март 2010, 08:05:14 »

Спасибо, буду ждать и пользоваться пока предыдущей версией. Просто без этого расширения уже не представляю себе работу )
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +215/-4
Offline Offline

Сообщений: 6186


« Ответ #10 : 09 Март 2010, 14:27:30 »

Исправленная сборка 1.0.0.270 доступна в разделе Файлы
_http://handycache.ru/component/option,com_remository/Itemid,2/func,fileinfo/id,34/
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #11 : 23 Май 2011, 00:26:43 »

ИМХО, эту задачу (делать ссылки, определяемые по некоторым правилам, не кликабельными) должно решать не расширения HC, а расширение Firefox.

Я как раз такое щаз ищу (пока безуспешно Грустный ).

Для чего на многие форумы запостил мессадж, в котором я (в частности) говорю, что ищу аддон для Firefox, который делал бы ссылки, удовлетворяющие заданным пользователем правилам, не "кликабельными". Т.е. чтобы клики по ним игнорировались, а значит, создание нового таба или окна не происходило бы.
Правила, например, такие:
а) «Если страница с таким URL уже открыта в каком-то табе/окне, то заблокировать создание новых табов с таким же URL (сделать ссылку не кликабельной)»
б) «Если домен, к которому принадлежит ссылка, находится в списке блокируемых/разрешённых, то игнорировать/воспринимать клики по этой ссылке.»
в) «Открывать/не открывать только ссылки, имеющиеся/отсутствующие в «избранном»»
г) «Открывать/не открывать только ссылки, <ранее уже посещавшиеся>/<ранее НЕ посещавшиеся>»
д) «Открывать/не открывать только ссылки, посещённые до/после <заданная дата>»
е) «Заблокировать на n-секунд открытие всех ссылок страницы, которые ссылаются за пределы домена, которому принадлежит страница»
ж) ..
...

Как мне кажется, это было бы гораздо более эффективное и правильное решение: лочить открытие ссылок ещё на уровне Firefox, до попадания на уровень HC.


А потому, Ваш "Блокировать внешние ссылки (R-ext) v 3.1" решает только пункт е)
А хотелось бы, чтобы и а) и б) и т.д. тоже можно было применять для определения не "кликабельных" (т.е. блокируемых) ссылок

« Последнее редактирование: 23 Май 2011, 00:45:49 от Доктор ТуамОсес » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #12 : 23 Май 2011, 10:43:42 »

Я создавал расширение R-ext, чтобы блокировать внешние линки во время загрузки страницы самим браузером, потому что так обычно загружаются сторонние рекламные фреймы, скрипты, баннеры и т.п. Эти линки загружаются браузером автоматически без участия пользователя, потому что того требует HTML-код страницы. Эти ссылки, как правило, вообще не видны на странице и по ним не получится "кликнуть".

Я считаю, что неправильно мешать пользователю переходить по ссылке, раз он сам этого захотел и кликнул по ней. По этому поводу было много нареканий пользователей, поэтому пришлось даже добавить в R-ext опцию "Ограничить время блокирования внешних ссылок заданным количеством секунд", чтобы не мешать пользователю позже переходить по ссылкам на внешние страницы.

Цитировать
Как мне кажется, это было бы гораздо более эффективное и правильное решение: лочить открытие ссылок ещё на уровне Firefox, до попадания на уровень HC.

У расширения HC есть большой плюс - оно работает с любым браузером, а не только с каким-то одним. У HC может быть несколько пользователей и у каждого из них может быть несколько браузеров и везде будет работать расширение R-ext, что удобно...
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #13 : 23 Май 2011, 17:29:24 »

Эти линки загружаются браузером автоматически без участия пользователя, потому что того требует HTML-код страницы. Эти ссылки, как правило, вообще не видны на странице и по ним не получится "кликнуть".
А!!! Дык вот о каких "ссылках" речь идёт!  yahoo
Теперь понял. Спасибо за разъяснения.

Только одно не понятно.  Поиск
А разве "чёрный список" в HC не решает проблему блокировки загрузки ненужных ссылок?
Добавлено: 23 Мая 2011, 17:05:24

пришлось даже добавить в R-ext опцию "Ограничить время блокирования внешних ссылок заданным количеством секунд", чтобы не мешать пользователю позже переходить по ссылкам на внешние страницы.
Дык как он "перейдёт" если Вы сами же пишите, что "Эти линки загружаются браузером автоматически без участия пользователя, потому что того требует HTML-код страницы. Эти ссылки, как правило, вообще не видны на странице и по ним не получится "кликнуть". "©
 Непонимаю
Добавлено: 23 Мая 2011, 17:10:17

Я считаю, что неправильно мешать пользователю переходить по ссылке, раз он сам этого захотел и кликнул по ней.
Видите ли в чём дело.  Знай наших!

Пользователю зачастую затруднительно определить просто посмотрев на ссылку "а что там? По ссылке. А посещал ли я эту ссылку ранее? А этот домен? А когда? А сколько раз? А если посещал, то понравилась ли мне страница? А есть ли эта ссылка у меня в избранном? ... И т.п. и т.д."

Чтобы узнать всё это пользователю придётся кликнуть ссылку, дождаться окончания загрузки страницы и посмотреть её. Возможно повторно.

А описанный мной выше аддон АВТОМАТИЧЕСКИ избавлял бы пользователя от кучи бесполезной работы - от просмотра (возможно повторного) не нужных ссылок.

А кроме того, избавил бы браузер от бесполезной работы.

Для чего будет достаточно просто предварительно задать правила для "не нужных ссылок".

Например, такое правило:Сделать "кликабельными" только те ссылки,  которые не находятся у Вас в "избранном", которые Вы посещали не менее 3-х раз и причём последний раз посещали до 1 мая 2011 года и которые входят в текущий список разрешённых доменов.

Это ни HC ни Ваше расширение не смогут сделать.
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +291/-14
Offline Offline

Сообщений: 5177



« Ответ #14 : 23 Май 2011, 19:26:03 »

Я как раз такое щаз ищу (пока безуспешно Грустный ).
Вряд ли найдется что-то готовое полностью удовлетворяющее. Попробуйте написать самостоятельно такое расширение. Будет универсально для всех браузеров и, уверен, востребовано сообществом  Отлично!
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #15 : 23 Май 2011, 21:27:55 »

А разве "чёрный список" в HC не решает проблему блокировки загрузки ненужных ссылок?

Нет, не решает. Постоянно появляются новые рекламные домены, которых еще нет в Черном списке. Постоянно добавлять новые правила в Черный список, это довольно хлопотное занятие...

Цитировать
Дык как он "перейдёт" если Вы сами же пишите, что "Эти линки загружаются браузером автоматически без участия пользователя, потому что того требует HTML-код страницы.

Расширение R-ext блокирует любые линки: и видимые, и невидимые. Через некоторое время после загрузки страницы блокировка снимается.
Раньше же блокировка вообще не снималась и по внешним ссылкам невозможно было даже позже перейти при клике, что вызывало много неудобств у пользователей.

Цитировать
Чтобы узнать всё это пользователю придётся кликнуть ссылку, дождаться окончания загрузки страницы и посмотреть её. Возможно повторно.

То, что пользователь посещал ссылку ранее, вовсе не означает, что она ему понравилась и он захочет зайти на нее снова или наоборот никогда больше не захочет.
Может быть новый сайт, где пользователь никогда еще не был, окажется интереснее всех старых, занесенных в Избранное, но браузер ограничит возможность перехода на него! 

Цитировать
А описанный мной выше аддон АВТОМАТИЧЕСКИ избавлял бы пользователя от кучи бесполезной работы - от просмотра (возможно повторного) не нужных ссылок.

И существенно ограничил бы пользователя в свободе выбора.

Цитировать
А кроме того, избавил бы браузер от бесполезной работы.

Сбор, хранение и обработка базы посещенных сайтов добавит браузеру не меньше "бесполезной работы"!

Цитировать
Например, такое правило:Сделать "кликабельными" только те ссылки,  которые не находятся у Вас в "избранном", которые Вы посещали не менее 3-х раз и причём последний раз посещали до 1 мая 2011 года и которые входят в текущий список разрешённых доменов.

Это ни HC ни Ваше расширение не смогут сделать.

Мое расширение - нет и лично мне это абсолютно не нужно. Но при желании и должном умении ты можешь написать свое расширение для HC, которое будет все это делать...
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #16 : 24 Май 2011, 00:08:26 »

Вряд ли найдется что-то готовое полностью удовлетворяющее.
Кол-во написанных для Firefox аддонов сейчас достигло уже нескольких десятков тысяч (если не сотен тысяч).
Неужели же среди такого кол-ва аддонов не найдётся хотя бы парочка, делающая (хотя бы отчасти) то, что я описал выше?

Попробуйте написать самостоятельно такое расширение. Будет универсально для всех браузеров и, уверен, востребовано сообществом  Отлично!
Времени нет. Я работаю на тяжелейшей физической работе (подсобным рабочим).
А по выходным пишу 3 книги по программированию и общаюсь с детьми (их у меня четверо)
Добавлено: 23 Мая 2011, 22:41:18

Нет, не решает. Постоянно появляются новые рекламные домены, которых еще нет в Черном списке. Постоянно добавлять новые правила в Черный список, это довольно хлопотное занятие...
Согласен.
Но для параноиков можно рекомендовать следующее: пишем  в "чёрном списке" единственную строку: .*
А в "белом" прописываем домены, которым мы доверяем (т.е. которые мы исключаем из чёрного списка).
И всё. Враг не пройдёт Ни один новый рекламный сайт не будет Вами загружен. Показывает язык
Добавлено: 23 Мая 2011, 23:03:45

Расширение R-ext блокирует любые линки: и видимые, и невидимые.
Вы не поверите, но "чёрный список" в HC делает то же самое  lol
Добавлено: 23 Мая 2011, 23:20:15

и по внешним ссылкам невозможно было даже позже перейти при клике, что вызывало много неудобств у пользователей.
Не очень понятно (точнее совсем не понятно  Непонимаю  ): каким образом юзверь собирается "кликать" по ссылкам если "Эти ссылки, как правило, вообще не видны на странице и по ним не получится "кликнуть""(с)? Смущен

А если эти ссылки всё же видимые и "кликабельные", то "сами собой" ("потому что того требует HTML-код страницы"(с)) они не загрузятся и тогда не понятно: зачем лочить их загрузку, к примеру, на 15 сек? Шокирован
Добавлено: 23 Мая 2011, 23:25:14

То, что пользователь посещал ссылку ранее, вовсе не означает, что она ему понравилась и он захочет зайти на нее снова или наоборот никогда больше не захочет.
С этим не поспоришь (я и не спорил).
Но "это означает", что юзверь (если конечно захочет ) сможет оградить себя от пустой траты времени на просмотр, а браузер от загрузки не понравившихся доменов и страниц.

Может быть новый сайт, где пользователь никогда еще не был, окажется интереснее всех старых
Если пользователь хочет смотреть только новые сайты, то аддон и в этом поможет сэкономить время избавив его от просмотра ранее посещённых сайтов. Для этого нужно будет просто задать правило: "сделать кликабельными ссылки только тех доменов, которые посещались мной после <дата и время>", где вместо <дата и время> Вы подставляете текущие дату и время. И вуаля. Вы никогда не попадёте на сайт, на котором уже бывали. Даже если кликнете какую-нибудь ссылку из "старых" доменов.
Удобно? Очень. К тому же это позволяет использовать интернет для добывания новой информации более эффективно.

Может быть новый сайт, где пользователь никогда еще не был, окажется интереснее всех старых, занесенных в Избранное, но браузер ограничит возможность перехода на него! 

И существенно ограничил бы пользователя в свободе выбора.
1) Иногда ничем не ограниченная свобода выбора идет только во вред, а не на пользу. И мы видим в жизни кучу тому примеров. Но это так. "Общие замечания"(с)
2) А теперь по делу: а что помешает юзверю (кроме ФГМ) снять галку с правила "Сделать не кликабельными ссылки, отсутствующие в [избранном]" если он хочет посещать не только сайты, имеющиеся в избранном?
Добавлено: 23 Мая 2011, 23:51:05

Сбор, хранение и обработка базы посещенных сайтов добавит браузеру не меньше "бесполезной работы"!
Это работа как раз очень полезная ибо она позволит юзверю экономить время (а время, как известно,  деньги) и трафик (который тоже, как известно, не бесплатный).
Добавлено: 23 Мая 2011, 23:55:32

Тем более, что если бы "Сбор, хранение и обработка базы посещенных сайтов"(c) - были "бесполезной работой", то разработчики Firefox не встроили бы код, выполняющий эту работу, в Firefox по дефолту. Значит они понимали всю важность этой работы и сделали "задел на будущее"
Добавлено: 23 Мая 2011, 23:58:33

Цитата: Доктор ТуамОсес
Например, такое правило:Сделать "кликабельными" только те ссылки,  которые не находятся у Вас в "избранном", которые Вы посещали не менее 3-х раз и причём последний раз посещали до 1 мая 2011 года и которые входят в текущий список разрешённых доменов.

Это ни HC ни Ваше расширение не смогут сделать.
и лично мне это абсолютно не нужно.
Сочувствую  Плачущий
Добавлено: 24 Мая 2011, 00:01:15

ты можешь написать свое расширение для HC, которое будет все это делать...
Только не для HC, а для Firefox. Ибо на уровне HC невозможно заблокировать создание новой вкладки в Firefox. Максимум что можно сделать на уровне HC - это заблокировать загрузку "не нужного" URL (даже не страницы, а всего лишь URL) с сервера
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #17 : 05 Июнь 2011, 04:40:37 »

А вообще полезное расширение. Спасибо.
Нашёл ему хорошее применение
Когда по порносайтам лазишь. Улыбка
Когда заходишь посмотреть фотки - оно блокирует фотки и др. файлы с других доменов.
В результате отсеиваются сайты, которые сами не являются хостингами порнухи, а являются всего лишь "заманухой" (сайтами-редиректами на другие сайты, которые, в свою очередь, также могут оказаться всего лишь редиректами и т.д.)
Сообщить модератору   Записан
flash
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 74


« Ответ #18 : 06 Июнь 2011, 14:57:44 »

Гы, чел пишет книжки по программированию и не может написать расширение из за отсутствия времени, но по порносайтам пошустрить это без проблем Улыбка Так и сказал бы что вломно писать... Проще покритиковать того кто делом занят
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #19 : 06 Июнь 2011, 15:51:16 »

flash
Современному человеку практически "на каждый чих" нужна своя "программа"/свой "плагин". Уж в такое время (компьютеризированное) мы живём.
Если я буду все эти программы писать сам - меня больше ни на что не хватит.
P.S. А по порносайтам полазить - это святое. Ибо без воздуха, воды, еды и секса человек не сможет выжить. А без "расширения" - сможет
Сообщить модератору   Записан
flash
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 74


« Ответ #20 : 06 Июнь 2011, 16:40:15 »

Ну с PS можно согласиться наверное, тут важно не столько порнуха сколько понимание ваше как программиста(думаю если вы пишите книги то вы себя таковым счетаете) того, что под свои нужды все равно приходится в итоге самому писать, к тому же вы про фокса тут пишете, а ведь не факт что завтра на нем сидеть будете. Лучше уж сделать универсальный модуль (допустим под handycache). Я вот, к слову, тоже софтинки небольшие пишу, в связи с этим решил изучить вопрос и делать аддоны самостоятельно. Чему же нас тогда учили?
Сообщить модератору   Записан
Dan Claimant
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 16


« Ответ #21 : 09 Июль 2012, 13:40:36 »

Подскажите, пожалуйста, есть ли возможность настроить R-ext чтобы он блокировал внешние ссылки только на определённых доменах?
Например, вписываешь mail.ru и все картинки с внешних сайтов блокируются.

Интересует вариант блокировки только на определённых сайтах, чтобы на всех остальных открывалось без проблем.

Спасибо заранее за ответ.
« Последнее редактирование: 09 Июль 2012, 13:45:45 от Dan Claimant » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #22 : 09 Июль 2012, 20:31:22 »

Возможность блокировать внешние ссылки только на определенных сайтах есть.

Надо в настройках расширения в поле "Исключения для рефереров (сайтов)..." добавить только одну строку вида:
^http://(?![^/]*mail\.ru)

Вместо mail\.ru можно записать группу сайтов в таком формате:
^http://(?![^/]*(mail\.ru|yandex\.net|site\.com))

Но не забудьте, такая строка должна быть только одна в поле исключений.
Сообщить модератору   Записан
Dan Claimant
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 16


« Ответ #23 : 09 Июль 2012, 22:15:20 »

Спасибо огромное, весьма эффективно =)
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #24 : 20 Ноябрь 2012, 15:51:01 »

[ + ] Опция: Учитывать при блокировании активность "Черного списка" и правила "Белого списка" HC'.

Желательно добавить и список "Переадресации".

Пока заменил @event с RequestHeaderReceived на BeforeRequestHeaderSend,
а то посылает на
httр://www.securitylab.ru.css.1c-bitrix-cdn.ru/bitrix/js/main/core/css/core.css
хотя, как и раньше, файл есть и по адресу
httр://www.securitylab.ru/bitrix/js/main/core/css/core.css
« Последнее редактирование: 20 Ноябрь 2012, 16:35:16 от olDjeka » Сообщить модератору   Записан
Terfe
Постоялец
***

Репутация: +4/-1
Offline Offline

Сообщений: 126


« Ответ #25 : 08 Январь 2013, 14:41:47 »

Такая проблема. На сайтах выкладывают рисунки, которые находятся на сторонних ресурсах (как правило это спец. хостинги), R-ext их естественно не пропускает. Проблема состоит в том, что браузер на месте не-загруженного рисунка абсолютно ничего не показывает - как будто там и нет ничего. Как мне доработать расширение (или может кто-то добавить такую функцию?), чтоб R-ext при блокировке рисунка возвращал браузеру некий файл? Как это например сделано в самом НС в "Черном списке".
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #26 : 08 Январь 2013, 21:43:55 »

Как мне доработать расширение (или может кто-то добавить такую функцию?), чтоб R-ext при блокировке рисунка возвращал браузеру некий файл? Как это например сделано в самом НС в "Черном списке".

Дорабатывать ничего не надо. При блокировке R-ext использует функционал "Черного списка", т.е. браузеру передается файл, прописанный в настройках "Черного списка".
Сообщить модератору   Записан
Terfe
Постоялец
***

Репутация: +4/-1
Offline Offline

Сообщений: 126


« Ответ #27 : 08 Январь 2013, 21:54:45 »

Дорабатывать ничего не надо. При блокировке R-ext использует функционал "Черного списка", т.е. браузеру передается файл, прописанный в настройках "Черного списка".

А как указать другой файл?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #28 : 08 Январь 2013, 22:15:15 »

В функции Stop() вместо переменной hc.action можно использовать hc.answer_header и hc.answer_body.
Сообщить модератору   Записан
Terfe
Постоялец
***

Репутация: +4/-1
Offline Offline

Сообщений: 126


« Ответ #29 : 09 Январь 2013, 14:43:29 »

Спасибо. Будем разбираться. Но если вы будете развивать расширение - добавьте пожалуйста такую фичу: что если ссылка соответствует регулярному выражению (например рисунки, видео-вставки), то браузеру возвращается определенный файл. А то ведь в черном списке обычно стоит прозрачная "заглушка", и в случае если попадается рисунок на стороннем ресурсе - пользователь думает что на странице ничего нет.

А в чем вы пишите расширения?
« Последнее редактирование: 09 Январь 2013, 15:08:04 от Terfe » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #30 : 09 Январь 2013, 15:54:45 »

А то ведь в черном списке обычно стоит прозрачная "заглушка", и в случае если попадается рисунок на стороннем ресурсе - пользователь думает что на странице ничего нет.

Не вижу принципиальной разницы между картинкой, заблокированной "Черным списком" или расширением R-ext. И там, и там бывают ложные срабатывания. В мониторе HC можно посмотреть, что конкретно сработало. Если существует опасность пропустить что-то очень важное, то вероятно не стоит использовать "прозрачные заглушки" или нужно занести это важное в "Белый список" или в исключения расширения R-ext.

Цитировать
А в чем вы пишите расширения?

В LuaTest.exe из комплекта HC.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #31 : 06 Февраль 2013, 00:01:08 »

Не стал создавать новую тему, надеюсь автор не против.

Представленный ниже вариант расширения позволяет вместо заблокированного ресурса показывать
заданный (в данном случае картинку R-ext-FF.png из папки HC).

Также, пользователи FF v3.6.28 могут раскомментировать строку
Код:
-- if re.find(hc.request_header, [[^Accept: text/html,]]) then return end
Это позволит снять в расширении галочку ограничения времени блокирования. По данной опции пока мало статистики, но та что имеется положительна.
Опция основана на том, что в случае запроса ссылки пользователем (клик, адресная строка), заголовок запроса в строке Accept содержит "text/html...", почти во всех других случаях значение было другое (запрос или не имел рефера, или был с того же хоста).
Вероятно другие версии FF и другие браузеры имеют подходящий функционал. Желающие могут проверить и внести нужные коррективы.
Проверялся ещё IE8. Тоже посылает разные строки, но при обновлении страницы - всем одинаковые.

Внесённые в  расширение изменения отмечены [ + ]

* eR_Block_external_links-ff.lua (20.27 Кб - загружено 89 раз.)

* R-ext-FF.png (0.21 Кб, 62x20 - просмотрено 241 раз.)
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #32 : 06 Февраль 2013, 15:21:06 »

Для работы расширения с доменами в puny-коде заменил в function GetHost(s) строку
Код:
s = re.find(s, [[^http://([^/]+\.)?([^/.]+)(\.\w+)(:\d+)?/]])
на
Код:
-- Меняем \w на [^/] для работы с доменами в puny-коде [+]
s = re.find(s, [[^http://([^/]+\.)?([^/.]+)(\.[^/]+)(:\d+)?/]])



Включение в HC опции для декодирования puny-кода меняет hc.url
Для обхода проблемы использовал Url из заголовка запроса, заменив строки
Код:
-- Выделяем из ссылок домены 2-го уровня
local ref_host = GetHost(ref)
local url_host = GetHost(UnifyURL(hc.url))
на
Код:
-- Выделяем Url из заголовка запроса [+]
local function GetUrl(s)
s = re.find(s, [[^GET *(\S+)]], 1)
  if s then s = string.lower(s) end
return s
end
-- Забираем Url из заголовка запроса [+]
local url = UnifyURL(GetUrl(hc.request_header))

-- Выделяем из ссылок домены 2-го уровня
local ref_host = GetHost(ref)
-- local url_host = GetHost(UnifyURL(hc.url)) -- "Отключаем" данную строку,
local url_host = GetHost(url) -- взамен "подключаем" эту [+]
! После замены в списках исключений для национальных доменов следует использовать:
  • для Url - язык локали (httр://кто.ты/)
  • для реферов - puny-код (httр://xn--j1ail.xn--r1as/)
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #33 : 06 Февраль 2013, 15:58:37 »

olDjeka

А смысл лезть в национальные домены? Я не стал этого делать, потому что на этих сайтах куча внутренних элементов подгружается с их латинских зеркал. Естественно, R-ext их все заблокирует, потому что домены не совпадают. Придется все национальные домены забивать в исключения.

Для примера, зайди на президент.рф и посмотри в мониторе HC, откуда там грузятся внутренние элементы. Они грузятся с kremlin.ru . Домены не совпадают, R-ext их все заблокирует!

Только исходя из этого, я не стал править R-ext для работы с кириллическими доменами.

Цитировать
! После замены в списках исключений для национальных доменов следует использовать:
для Url - язык локали (httр://кто.ты/)
для реферов - puny-код (httр://xn--j1ail.xn--r1as/)

Тогда уж и рефереры бы на локаль перевел, это просто сделать...
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #34 : 06 Февраль 2013, 17:51:14 »

Цитировать
зайди на президент.рф
Как раз туда и заходил когда заметил Улыбка
Поскольку сейчас "бум" нацдоменов госструктур, а им на пятки наступают рекламщики и иже с ними, то
по мне так лучше один раз загрузить в кеш (без добавления в исключения) и забыть (как и сделал с вышеупомянутым).

Цитировать
и рефереры бы на локаль перевел, это просто сделать...
Что-то не соображу куда копать Непонимаю
Добавлено: 06 Февраль 2013, 17:30:46

Хотя конечно неплохо бы иметь возможность включать/отключать данную опцию в настройках, но пока я в этом не очень разобрался и потому не лезу.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #35 : 06 Февраль 2013, 18:39:30 »

по мне так лучше один раз загрузить в кеш (без добавления в исключения) и забыть (как и сделал с вышеупомянутым).

Это хорошо, когда таких сайтов 1-2 в день. А когда начнется реальный "бум" и десятки новых в день, будет напрягать. Да и уже закэшированные сайты могут часто менять структуру, на разных страницах могут быть разные элементы, что устанешь постоянно кэширвать их все в ручном режиме. А если у пользователя нет постоянного доступа к HC, то вообще труба... Подмигивающий

Цитировать
Что-то не соображу куда копать Непонимаю

Варианта 2:

1. Для пытливых: заюзать функцию hc.recode() - она знает puny-код.
2. Для лентяев Улыбка : реферер брать из hc.monitor_parent_url, url - из hc.url и сравнивать их домены на кириллице - и там, и там они уже декодированы (при включенной в HC соответствующей опции).

Добавлено: 06 Февраль 2013, 18:12:55

Еще у тебя в скрипте логическая ошибка:
Код:
hc.answer_body = hc.last_part and '' or Data
'' и Data перепутаны местами.

И вторая ошибка: заголовок ответа HC тоже менять надо. В нем может быть прописан тип не картинка, а HTML и другого размера. Браузер может тебя не понять.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #36 : 07 Февраль 2013, 02:21:54 »

Цитата: olDjeka
для Url - язык локали
Забыл указать, что это при включённой опции декодирования puny в HC, иначе тоже в puny-коде.

Цитировать
то вообще труба
Для отключения возможности работы расширения с puny-кодом достаточно в function GetHost(s) заменить последний [^/] на \w (или поменять обратно указанную в посте строку).
DenZzz, спасибо Благодарю Над ошибками бум работать :Улыбка
Скорее всего пойду по лёгкому пути "модернизации инноваций", а кто не пользуется соответствующей опцией HC, тот думаю сможет добавить исключения и в puny-коде.

Поскольку не особо интересовался puny, то с трудом понял что перед recode надо ещё парсить строку
httр://кто.ты/
httр://xn--j1ail.xn--r1as/

При использовании hc.monitor_parent_url большaя часть работы может делаться самим HC, зачем дважды делать одно и тоже.

Цитировать
Браузер может тебя не понять
Тоже сомневаюсь в верности моего решения. Пока никаких сбоев не заметил, но все браузеры разные.
« Последнее редактирование: 07 Февраль 2013, 02:35:28 от olDjeka » Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #37 : 07 Февраль 2013, 14:20:36 »

Цитата: DenZzz
Еще у тебя в скрипте логическая ошибка:
Код:
hc.answer_body = hc.last_part and '' or Data
'' и Data перепутаны местами.
Михаил тоже указывал именно на такое применение, но перед вставкой в расширение посмотрел что отвечает сам HC. А он сначала отдаёт тело, а затем пустую строку, поэтому и решил использовать именно вариант используемый HC.
Сейчас проверил, работают оба варианта. Теперь совсем запутался или что-то упустил Непонимаю

Вот расширение которым снимал показания, а ниже его сообщения.
Код:
--[[ <HCExtension>
@name ### Temp ###
@event RequestHeaderReceived/T001
</HCExtension> ]]

function body()
hc.put_to_log('#body\r\n'..hc.answer_body)
end

function T001()
hc.action = 'stop'
hc.call_me_for('BeforeAnswerBodySend', 'body')
end

Если в ЧС не задано "Показывать файл"
Код:
07.02.13 13:30:39,168 # 375 -=< MESSAGE FROM EXTENSION >=- D:\HandyCache\Extensions\Temp.lua
#body
<HTML><HEAD><TITLE>Blocked</TITLE></HEAD><BODY><H1>Blocked</H1>
Access to the requested URL <B>http://handycache.ru/</B> was not allowed (request script).
</BODY></HTML>

07.02.13 13:30:39,469 # 375 -=< MESSAGE FROM EXTENSION >=- D:\HandyCache\Extensions\Temp.lua
#body


Если в ЧС задано показывать файл (картинку)
* Вероятно из-за этого браузер у меня понимает что R-ext отдаёт картинку
Код:
07.02.13 13:30:57,705 # 375 -=< MESSAGE FROM EXTENSION >=- D:\HandyCache\Extensions\Temp.lua
#body
‰PNG


07.02.13 13:30:57,715 # 375 -=< MESSAGE FROM EXTENSION >=- D:\HandyCache\Extensions\Temp.lua
#body

Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #38 : 07 Февраль 2013, 14:44:47 »

Цитировать
Сейчас проверил, работают оба варианта. Теперь совсем запутался или что-то упустил

Тебе просто повезло, что в этих примерах HC отдает тело только двумя кусками. Если бы куска было 3, то ты бы послал браузеру тело картинки 2 раза.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #39 : 08 Февраль 2013, 18:25:45 »

Для исключения конфликтов изменены некоторые вновь введённые имена и значения.
Исправил ошибку в hc.answer_body.
Для избавления от второй ошибки внёс следующие изменения:
Код:
hc.call_me_for('BeforeAnswerBodySend', 'body')
заменил
Код:
-- Помечаем заблокированное вставкой своей строки в заголовок запроса [+]
hc.request_header = re.replace(hc.request_header, [[\A]], 'HandyCache/R-ext\r\n')
в начало function AnswerSend() добавил
Код:
-- Проверям отметку о блокировке, и если есть, то [+]
if re.find(hc.request_header, 'HandyCache/R-ext') then
-- изменяем заголовок ответа, с указанием типа контента
hc.answer_header = re.replace(hc.answer_header, [[.*]], 'HTTP/1.1 430 lock (R-ext)\r\nConnection: Close\r\nContent-Type: image/png\r\n\r\n')
-- задаём обработчик для подмены тела ответа
hc.call_me_for('BeforeAnswerBodySend', 'BodyExt')
end
Теперь сообщение о сработке расширения выводится в колонку "Ответ", и можно закомментировать соответствующую строку для отключения вывода сообщений в колонку правила.

Внёс изменения для возможности работы с доменами в puny-коде:
Код:
-- Забираем Referer из заголовков запроса
local ref = UnifyURL(GetReferer(hc.request_header))

-- Получаем Referer из строки монитора [+]
-- Для работы с доменами в puny-коде следует закомментировать
-- предидущую строку кода и расскоментировать следующую*
-- if hc.monitor_parent_url=='' then return end local ref = UnifyURL(string.lower(hc.monitor_parent_url))
-- * После этого в списках исключений для национальных доменов следует использовать
-- язык локали, если для puny-кода включена соответствующая опция HC,
-- или puny-код, если она выключена

Вставил комментарий по поводу списка переадресации.

p.s. Когда (по ошибке) дважды использовал одно событие стали вываливаться ошибки, типа
Код:
BAHS-SCRIPT "AnswerSend" ERROR:
[string "--[[ <HCExtension>..."]:194: attempt to index field 'Options' (a nil value)
и многие расширения начали чудить. Избавился презагрузкой HC.
Нет ли более гумманого способа? (некоторые соединения разрывать нежелательно)

* eR_Block_external_links-ff.lua (21.81 Кб - загружено 80 раз.)
« Последнее редактирование: 08 Февраль 2013, 18:34:08 от olDjeka » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #40 : 08 Февраль 2013, 23:55:56 »

заменил
Код:
-- Помечаем заблокированное вставкой своей строки в заголовок запроса [+]
hc.request_header = re.replace(hc.request_header, [[\A]], 'HandyCache/R-ext\r\n')

Не хорошо портить заголовки запросов. После твоего расширения могут работать другие, которые не поймут не по стандарту исправленный заголовок.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #41 : 09 Февраль 2013, 02:00:36 »

Смущен Так будет правильно?
Код:
hc.request_header = re.replace(hc.request_header, [[\Z]], 'HandyCache: R-ext\r\n')
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #42 : 10 Февраль 2013, 21:53:10 »

Да.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #43 : 11 Февраль 2013, 02:28:41 »

Исправил строку заголовка запроса как указано выше, а поиск как указано ниже.

Активность ЧС и правила БС не влияли на ответ - клиенту всегда отдавалось заданное в расширении.
Для исправления заменил
Код:
function AnswerSend()   -- Выполняется при передаче ответа клиенту

-- Проверям отметку о блокировке, и если есть, то [+]
if re.find(hc.request_header, 'HandyCache/R-ext') then
-- изменяем заголовок ответа, с указанием типа контента
hc.answer_header = re.replace(hc.answer_header, [[.*]], 'HTTP/1.1 430 lock (R-ext)\r\nConnection: Close\r\nContent-Type: image/png\r\n\r\n')
-- задаём обработчик для подмены тела ответа
hc.call_me_for('BeforeAnswerBodySend', 'BodyExt')
end
на следующее
Код:
function AnswerSend()   -- Выполняется при передаче ответа клиенту

-- Проверям отметку о блокировке [+]
if re.find(hc.request_header, 'HandyCache: R-ext') and
-- и заголовок ответа на "допустимость блокирования",
re.find(hc.answer_header, [[\AHTTP/1.1 (403 Forbidden|430 Blocked) \(HC\)]]) then
-- и если разрешено, то изменяем заголовок ответа с указанием типа контента
hc.answer_header = 'HTTP/1.1 430 lock (R-ext)\r\nConnection: Close\r\nContent-Type: image/png\r\n\r\n'
-- и задаём обработчик для подмены тела ответа
hc.call_me_for('BeforeAnswerBodySend', 'BodyExt')
end

* Если запрос блокируется правилом ЧС, то при использовании в расширении события
Код:
@event           RequestHeaderReceived
в колонку монитора Ответ будет выдана строка, а клиенту будет отдан файл, заданные в расширении.
При использовании события
Код:
@event           BeforeRequestHeaderSend
будут выданы соответсвующие данные ЧС.
Сообщить модератору   Записан
bulmandov
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1

b.


« Ответ #44 : 15 Февраль 2013, 22:28:49 »

А можно в Adblock как-нибудь блокировать картинки определенных размеров. Например счетчики, которые как правило имеют стандартный размер 88х31?
Сообщить модератору   Записан

b.
alex77
Старожил
****

Репутация: +11/-1
Offline Offline

Сообщений: 459



« Ответ #45 : 16 Февраль 2013, 05:19:07 »

А можно в Adblock как-нибудь блокировать картинки определенных размеров. Например счетчики, которые как правило имеют стандартный размер 88х31?
используйте СМ.
Сообщить модератору   Записан
Страниц: 1 2 3 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: