+  HandyCache форум
|-+  Главная категория» Общие вопросы» Как блокировать разные сайты для разных пользователей?
Имя пользователя:
Пароль:
Страниц: 1 2 3 4 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Как блокировать разные сайты для разных пользователей?  (Прочитано 59942 раз)
0 Пользователей и 1 Гость смотрят эту тему.
doctor_ORZ
Новичок
*

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

Сообщений: 25


« : 28 ноября 2009, 19:48:26 »

Дано: школа. В школе локалка. Несколько десятков ПК. За любым из них может сесть как учитель, так и ученик (значит имя ПК не меняется, если конечно вместе со сменой пользователя не менять имя при помощи спец.утилит)
Нужно, что бы прокси менял свою политику в зависимости от юзера. Активна учетка "школьник" - работает белый список. Заходит "учитель" (либо учетные записи учителей - порядка 60-80 логинов) - работает черный список. Заходит "админ" - работает просто прокси.
Это можно реализовать? Насколько знаю - прокси реагирует на имя ПК, но не на учетку.
Поднимать несколько копий прокси? - не выход.
Как решить проблему?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #1 : 29 ноября 2009, 12:57:53 »

Попробуй сделать с помощью расширения.
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

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

Сообщений: 25


« Ответ #2 : 29 ноября 2009, 14:27:00 »

Что бы это сделать - нужно знать. Но изучить всё это дело времени не хватает. Максимум, что смогу - по образцу и подобию подогнать под свои нужды. Но нужен образец. Может кто-то уже делал нечто похожее? Вы уж извините - именно не могу изучать, а не "не хочу" Грустный
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #3 : 08 декабря 2009, 22:11:28 »

Нужно, что бы прокси менял свою политику в зависимости от юзера. Активна учетка "школьник" - работает белый список. Заходит "учитель" (либо учетные записи учителей - порядка 60-80 логинов) - работает черный список. Заходит "админ" - работает просто прокси.

Не понятно, почему для учителей работает Черный список, а для учеников - Белый, а не наоборот.
И что значит: "работает просто прокси"? Все списки отключены? Даже Запись в кэш и Преобразование URL?

Пример расширения приведу такой:

Код:
--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()

 if hc.user_name == 'admin' then
  hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
  hc.monitor_string = hc.monitor_string..'Б.БЧ '
 end

 if hc.user_name == 'uchitel' then
  hc.white_mask = 'Ч'   -- Отключает Черный список
  hc.monitor_string = hc.monitor_string..'Б.Ч '
 end

end
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

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

Сообщений: 25


« Ответ #4 : 09 декабря 2009, 08:11:53 »

Для учителей "Ч", что бы не лазили на одноклассники-вконтакте-миртесен в рабочее время Улыбка - а с порно и рекламой они и сами разберутся.
У учеников "Б" - что бы лазили только туда, куда минобр разрешил.
Для админа - "Ч" и "Б", указанные выше вырублены, работают только дефолтные списки и правила (я действительно немного неверно сначала сформулировал запрос). Но, тогда, видимо и скрипт нужно поправить? Если не трудно, пожалуйста.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #5 : 09 декабря 2009, 12:15:40 »

Для учителей "Ч", что бы не лазили на одноклассники-вконтакте-миртесен в рабочее время Улыбка - а с порно и рекламой они и сами разберутся.
У учеников "Б" - что бы лазили только туда, куда минобр разрешил.

Получается, что у учителей и учеников два совершенно разных Черных списка (ЧС): у учеников он будет состоять из одного правила "запрещать все", а у учителей - из "одноклассники-вконтакте-миртесен". Но HC может одновременно работать только с одним ЧС.

В данном случае лучше не трогать дефолтные списки HC. Пусть ЧС режет рекламу для всех, а запрещать/разрешать загрузку сайтов по пользователям лучше на уровне расширения:

Код:
--[[ <HCExtension>
@name          Блокировать сайты по пользователям
@author        DenZzz
@event         Init/Init
@event         RequestHeaderReceived/Block
</HCExtension> ]]

function Init()
-- Белый список для учеников (запрещено все, кроме указанного)
hc_static.Whitelist_for_SchoolChildren = [[только_образовательные_сайты]]
-- Черный список для учителей (разрешено все, кроме указанного)
hc_static.Blacklist_for_Teachers = [[odnoklassniki|vkontakte|mirtesen]]
end

function Block()
if hc.user_name == 'uchitel' and re.find(hc.url, hc_static.Blacklist_for_Teachers) then
hc.action = 'stop'   --  запретить загрузку
hc.monitor_string = hc.monitor_string..'Block Teachers '
elseif hc.user_name == 'uchenik' and not re.find(hc.url, hc_static.Whitelist_for_SchoolChildren) then
hc.action = 'stop'   --  запретить загрузку
hc.monitor_string = hc.monitor_string..'Block SchoolChildren '
end
end
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

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

Сообщений: 25


« Ответ #6 : 09 декабря 2009, 17:11:02 »

опять всё немного не так:
У учеников - белый список и только. Порядка 3000 сайтов (сам список у меня уже набит) - остальное - бан.
У учителей - можно всё, что не запрещено (т.е. работает черный список).
Админу (директору, ещё 2 человекам) можно всё.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #7 : 09 декабря 2009, 21:55:57 »

У учеников - белый список и только. Порядка 3000 сайтов (сам список у меня уже набит) - остальное - бан.

"Белый список и только" не может работать без Черного, который будет блокировать все остальное, но это невозможно, потому что он настроен под учителей...

Попробуй тогда так:

Код:
--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()
if hc.user_name == 'uchenik' then
hc.action = 'stop-'    -- Мягкий запрет загрузки всего, кроме разрешенного в Белом списке
elseif hc.user_name == 'uchitel' then
hc.white_mask = 'Б'    -- Отключает Белый список
elseif hc.user_name == 'admin' then
hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
end
end
Сообщить модератору   Записан
ixen
Новичок
*

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

Сообщений: 1


« Ответ #8 : 10 февраля 2010, 14:19:22 »

Всем привет! Подскажите пожалуста, у меня в сети 3 компьютера ходят в инет, но появилась необходимость добавить еще один компютер с доступом в интернет, но с разрешением только на конкретные сайты. Можно ли это реализовать и как с помощью HC ?

З.ы. HC пользуюсь несколько месяцев. Автору огромное спасибо! Отлично!
Сообщить модератору   Записан
Kuzmische
Новичок
*

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

Сообщений: 4


« Ответ #9 : 23 марта 2010, 10:18:24 »

Сделал по вашему рецепту:

--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()

 if hc.user_name == 'ASU1' then
  hc.white_mask = 'BWDR'
  hc.monitor_string = hc.monitor_string..'Без BWDR'
 end

end

В мониторе в колонке "ПРАВИЛА" 'Без BWDR' - отображается, т.е. расширение сработало, но списки продолжают работать...и Ч и Н.
Подскажите - где ошибка?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #10 : 23 марта 2010, 13:22:39 »

В мониторе в колонке "ПРАВИЛА" 'Без BWDR' - отображается, т.е. расширение сработало, но списки продолжают работать...и Ч и Н.
Подскажите - где ошибка?

У меня этот скрипт работает правильно. Какая версия HC используется?
Сообщить модератору   Записан
Kuzmische
Новичок
*

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

Сообщений: 4


« Ответ #11 : 24 марта 2010, 00:58:42 »

У меня этот скрипт работает правильно. Какая версия HC используется?


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

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

Сообщений: 8


« Ответ #12 : 31 марта 2010, 09:42:12 »

Как сделать так, чтобы черный список работал только для пользователей User1 и User2 например, но не работал для пользователя User3?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #13 : 31 марта 2010, 14:05:29 »

Это можно сделать через расширение, посмотри выше в этой теме.
« Последнее редактирование: 31 марта 2010, 15:43:49 от DenZzz » Сообщить модератору   Записан
СоколоВ
Новичок
*

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

Сообщений: 8


« Ответ #14 : 10 апреля 2010, 11:39:29 »

Проблема в том, что у меня тоже 180 билд как и топикстартера =/
Сообщить модератору   Записан
Ubiquitous_Nothing
Новичок
*

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

Сообщений: 8


« Ответ #15 : 26 апреля 2010, 17:13:32 »

Проблема в том, что у меня тоже 180 билд как и топикстартера =/

По-моему, эта проблема легкоразрешима. У меня обновление билда прошло быстро и безболезненно, и теперь с функционалом все в порядке.
Сообщить модератору   Записан
Ol_3
Пользователь
**

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

Сообщений: 69


« Ответ #16 : 17 мая 2010, 12:56:08 »

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

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

Сообщений: 6383


« Ответ #17 : 17 мая 2010, 13:27:31 »

Это расширение отключает Черный список для пользователя user1.
Код:
--[[ <HCExtension>
@name         BlackListDisabler
@author        mai62
@version       0.01
@description  Отключает Черный список для заданных пользователей
@event         RequestHeaderReceived/request
</HCExtension> ]]

function request()
 if hc.user_name == 'user1' then
  hc.white_mask="Ч"
 end
end
Сообщить модератору   Записан
Ol_3
Пользователь
**

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

Сообщений: 69


« Ответ #18 : 17 мая 2010, 14:31:06 »

я сделал так
--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()

 if hc.user_name == 'admin' then
  hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
  hc.monitor_string = hc.monitor_string..'Б.БЧ '
 end

end

чем это хуже -лучше предложенного Вами?
вроде работает.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #19 : 17 мая 2010, 14:58:54 »

Я думаю, что твое расширение лучше тем, что ты его написал сам. А перед этим, наверное, почитал документацию. Теперь, если понадобится еще что-то, ты сможешь попробовать это организовать.
Сообщить модератору   Записан
Ol_3
Пользователь
**

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

Сообщений: 69


« Ответ #20 : 17 мая 2010, 15:05:59 »

Я думаю, что твое расширение лучше тем, что ты его написал сам. А перед этим, наверное, почитал документацию. Теперь, если понадобится еще что-то, ты сможешь попробовать это организовать.
Я почитал выше,и с 5-7 раза стало доходить, что там написано.
ну и Опыт, сын ошибок трудных.....
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #21 : 17 мая 2010, 15:16:49 »

Если еще чего понадобится, почитай файл HCExtensions.html (лежит в архиве с НС в папке Extensions). Там написано какие переменные и функции для чего предназначены. Ну и еще есть тема http://handycache.ru/component/option,com_smf/Itemid,10/topic,1120.0/ , где можно посмотреть примеры расширений (думаю и то, что тебе надо было там можно найти).
Сообщить модератору   Записан
Ol_3
Пользователь
**

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

Сообщений: 69


« Ответ #22 : 18 мая 2010, 12:23:21 »

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

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

Сообщений: 5589



« Ответ #23 : 09 августа 2010, 19:39:08 »

Возвращаясь к вопросу с запретом vkontakte и odnoklassniki. Какой должен быть скрипт, чтобы запретить эти сайты в рабочие дни в рабочее время с 9-30 до 18-30 определенным товарищам?

Текст расширения будет таким:

Код:
--[[ <HCExtension>
@name          Блокировать загрузку определенных сайтов определенным пользователям в определенное время (R-Block)
@author        DenZzz
@version       0.1 для HC v1.00 RC2 (1.0.0.295) и возможно выше
@rule           odnoklassniki|vkontakte
@event         RequestHeaderReceived/Request
</HCExtension> ]]


function Request()
-- Начальные настройки:
local time_min = 9 + 30/60  -- от этого времени в часах и минутах, деленных на 60
local time_max = 18 + 30/60 -- до этого времени в часах и минутах, деленных на 60
local user_list = [[Tоварищ|Раб|Enemy]]  -- Список пользователей в формате RegExp

if re.find(hc.user_name, user_list) then
-- Узнаем текущее системное время
local t = os.date("*t")
local cur_time = t.hour + t.min/60  -- переводим в часы
-- Если текущее системное время от time_min до time_max и день недели рабочий, то
if cur_time >= time_min and cur_time < time_max and t.wday >=2 and t.wday <= 6 then
hc.action = 'stop'  -- Блокируем загрузку
hc.monitor_string = hc.monitor_string..'R-Block '
end
end
end  -- Конец функции Request
« Последнее редактирование: 09 августа 2010, 19:55:31 от DenZzz » Сообщить модератору   Записан
Ubiquitous_Nothing
Новичок
*

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

Сообщений: 8


« Ответ #24 : 15 октября 2010, 15:06:06 »

Прошу помощи со следующим:
Код:
--[[ <HCExtension>
@name          Маски списков для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()
if hc.user_list == [[Admin-pc|Admin|local]] then
hc.white_mask = 'Б'
elseif hc.user_list == [[Бухг-1|Бухг-2|Бухг-3|Секретарь|Библиотекарь|24-018-1|13-0|]] then
hc.white_mask = 'Б'
elseif hc.user_list == [['14-0'|'dct'|'все'|'Библиотека ОД'|'21 каб.'|'4-0'|'23-0'|'27-0'|'18-2'|'18-3'|'18-4'|'18-5'|'18-6'|'18-7'|'18-8'|'18-9'|'18-10'|'18-11'|'18-12'|'18-0']] then
hc.action = 'stop-'
end
end
Пользователи из третьего списка, например, 14-0 преспокойно открывают страницы не включенные в БС, хотя, как я понимаю hc.action = 'stop-' должен заблокировать загрузку страницы отсутствующей в БС но этого не происходит и просто срабатывает БС и ЧС
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #25 : 15 октября 2010, 15:29:42 »

1. Нежелательно создавать свои переменные в таблице hc, типа hc.user_list.
2. Нельзя значение переменной hc.user_list просто сравнивать с рег.выражением.
3. Кавычки в рег.выражениях не нужны.

Учитывая высказанное, твой скрипт должен выглядеть примерно так:

Код:
--[[ <HCExtension>
@name          Маски списков для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()
if re.find(hc.user_name, [[Admin-pc|Admin|local]]) then
hc.white_mask = 'Б'
elseif re.find(hc.user_name, [[Бухг-1|Бухг-2|Бухг-3|Секретарь|Библиотекарь|24-018-1|13-0]]) then
hc.white_mask = 'Б'
elseif re.find(hc.user_name, [[14-0|dct|все|Библиотека ОД|21 каб.|4-0|23-0|27-0|18-2|18-3|18-4|18-5|18-6|18-7|18-8|18-9|18-10|18-11|18-12|18-0]]) then
hc.action = 'stop-'
end
end
Сообщить модератору   Записан
Ubiquitous_Nothing
Новичок
*

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

Сообщений: 8


« Ответ #26 : 18 октября 2010, 14:30:01 »

DenZzz, спасибо!
теперь образовывается следующая проблема.
Пользователь, которому назначено stop- не может получить даже страниц из БС, к примеру #10#~#True#~#+rzd\.ru#~##~##~#True#~#Fal#~#Fal#~#Fal#~#Fal#~#Fal
вот лог
Код:
18.10.10 14:08:54,156 # 5: Start connection from client

18.10.10 14:08:54,156 # 5: Connection from 1.1.20.3:3430 to HC Version 1.00 RC3 (1.0.0.303)

18.10.10 14:08:54,156 # 5: Ur name: 14-0

18.10.10 14:08:54,171 # 5/6 >>> URL: http://rzd.ru/
DeniedDo:
GET http://rzd.ru/ HTTP/1.1
Ur-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.62
Host: rzd.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Chart: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Cache-Control: no-cache
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers


18.10.10 14:08:54,171 # 5 <<< URL: http://rzd.ru/
HTTP/1.1 430 Blocked (HC)
rver: HandyCache/1.00 RC3 (1.0.0.303)
Content-Type: text/html
Pragma: no-cache
Connection: Keep-alive
Content-Length: 598
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #27 : 18 октября 2010, 14:53:40 »

Ты неправильно написал правило
+rzd\.ru
Плюс в начале предполагает упрощенный синтаксис записи правила, а дальше применено \. из синтаксиса регулярных выражений. Надо писать так +rzd.ru или так rzd\.ru
Сообщить модератору   Записан
Ubiquitous_Nothing
Новичок
*

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

Сообщений: 8


« Ответ #28 : 18 октября 2010, 15:22:22 »

mai62, спасибо, действительно помогло! И отдельное спасибо за оперативность в разрешении возникающих вопросов.
Сообщить модератору   Записан
reverdatto
Новичок
*

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

Сообщений: 2


« Ответ #29 : 25 августа 2011, 11:53:07 »

Помогите чайнику у меня следующая проблема: есть 5 компов в сети (ip 192.168.0.1-192.168.0.5) нужно чтоб на 3х обновлялся только антивирус а на 4том был доступ к нету без ограничений.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #30 : 26 августа 2011, 22:50:34 »

reverdatto
Эту задачу нужно решать с помощью расширения. Расширение для аналогичной задачи есть здесь
http://handycache.ru/forum/index.php?topic=1120.msg18323#msg18323
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #31 : 27 августа 2011, 00:36:32 »

И еще здесь:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,2716.0/
Сообщить модератору   Записан
reverdatto
Новичок
*

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

Сообщений: 2


« Ответ #32 : 27 августа 2011, 22:09:39 »

Спасибо!
Сообщить модератору   Записан
goros
Новичок
*

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

Сообщений: 5


« Ответ #33 : 28 сентября 2011, 11:13:08 »

Требуется:
компу с IP_1 полный доступ, компу с IP_2 - только белый список.
Я настроил:
- в черном списке .* т.е. запрещает ВСЁ.
- в белом списке, в поле "Правило" +имя_сайта1.ru, "птичка" на Черном списке.
В Расширениях:
--[[ <HCExtension>
@name          Фильтр по IP
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()

   if hc.user_ip == 'IP_1' then
   hc.white_mask = 'WB'    -- Отключает белый, черный список
   end
end

Комп с IP_2 заходит правильно, применяется только белый список, остальное блокирует.
Почему компу с IP_1 не отключаются ограничения?
В какие кавычки должны быть прописаны переменные:  'IP_1' или "IP_1" ?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #34 : 28 сентября 2011, 12:31:15 »

У меня Ваше расширение работает. Вы не забыли после правки и сохранения расширения перечитать его в списке расширений?
Цитировать
В какие кавычки должны быть прописаны переменные:  'IP_1' или "IP_1" ?
Любые.
Сообщить модератору   Записан
goros
Новичок
*

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

Сообщений: 5


« Ответ #35 : 28 сентября 2011, 12:36:05 »

У меня Ваше расширение работает. Вы не забыли после правки и сохранения расширения перечитать его в списке расширений?
Пересчитывал, всё равно не работает, блокирует.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #36 : 28 сентября 2011, 13:06:05 »

Попробуйте изменить Ваше расширение до такого
Код:
--[[ <HCExtension>
@name          Фильтр по IP
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()

hc.put_to_log(hc.user_ip)
if hc.user_ip == 'IP_1' then
         hc.white_mask = 'WB'    -- Отключает белый, черный список
hc.put_to_log(hc.white_mask)
   end
end
Включите лог в НС и посмотрите, что будет в логе.
Сообщить модератору   Записан
goros
Новичок
*

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

Сообщений: 5


« Ответ #37 : 29 сентября 2011, 03:12:40 »

Включите лог в НС и посмотрите, что будет в логе.
Изменил расширение, как Вы написали.
Включил в НС - Настройки - Вид - Сохранять содержимое монитора.
Судя по логу, расширение вообще не применяется...
Часть лога
Код:
29.09.2011/08:56:01 User_8:29:29/'IP' http://www.sitekiosk.ru/                       0 0/142 0 0 "403 Forbidden (HC)" Ч.1
29.09.2011/08:56:01 User_8:29:29/'IP' http://www.sitekiosk.ru/favicon.ico        0 0/142 0 0 "403 Forbidden (HC)" Ч.1
29.09.2011/08:56:03 User_8:29:29/'IP' http://www.nalog.ru/                       0 0/142 0 0 "403 Forbidden (HC)" Б.1, Ч.1
29.09.2011/08:56:03 User_8:29:29/'IP' http://www.nalog.ru/favicon.ico            0 0/142 0 0 "403 Forbidden (HC)" Б.1, Ч.1
Сайт http://www.nalog.ru/ в белом списке (для тестирования этот сайт один в белом списке), но для эксперимента "птичку" на Черном списке отключил.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #38 : 29 сентября 2011, 09:16:12 »

Вы не тот лог включили. Надо нажать кнопку Вести лог (оранжевая стрелка) справа от монитора.
Сообщить модератору   Записан
goros
Новичок
*

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

Сообщений: 5


« Ответ #39 : 29 сентября 2011, 10:02:41 »

Помогите разобраться...
Выкладываю часть лога, где идет блокировка сайта www.sitekiosk.ru В белом списке его нет, но в расширении установлено, что для IP 10.114.134.52 отключается белый и черный список.
Код:
29.09.11 15:29:22,405 # 6580: Start connection from client
29.09.11 15:29:22,436 # 6580: Connection from 10.114.134.52:3125 to HC Version 1.00 RC3 (1.0.0.193)
29.09.11 15:29:22,436 # 6581: Start connection from client
29.09.11 15:29:22,467 # 6581: Connection from 10.114.134.52:3126 to HC Version 1.00 RC3 (1.0.0.193)
29.09.11 15:29:22,467 # 6580: User name: User_8:29:29
29.09.11 15:29:22,499 # 6580 -=< MESSAGE FROM EXTENSION >=- C:\Program Files\HandyCache\Extensions\Filtr_IP.lua
29.09.11 15:29:22,499 # 6580/6970 >>> URL: http://sitecheck2.opera.com/?host=www.sitekiosk.ru&hdn=0heFkdCv1EkclDoB4yz%2Bog==
DeniedDo:
GET http://sitecheck2.opera.com/?host=www.sitekiosk.ru&hdn=0heFkdCv1EkclDoB4yz%2Bog== HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51
Host: sitecheck2.opera.com
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Cookie: __kti=1314601783185,http%3A%2F%2Fwww.opera.com%2Fdocs%2Fplugins%2Finstallation%2F%23application-x-iso-image,; __ktv=b4f-6ff7-954c-a1d132145f4f94
Pragma: no-cache
Cache-Control: no-cache
Connection: Keep-Alive
29.09.11 15:29:22,530 # 6580 <<< URL: http://sitecheck2.opera.com/?host=www.sitekiosk.ru&hdn=0heFkdCv1EkclDoB4yz%2Bog==
HTTP/1.1 403 Forbidden (HC)
Server: HandyCache/1.00 RC3 (1.0.0.193)
Content-Type: text/html
Connection: Keep-alive
Content-Length: 226
29.09.11 15:29:22,561 # 6581: User name: User_8:29:29
29.09.11 15:29:22,874 # 6581 -=< MESSAGE FROM EXTENSION >=- C:\Program Files\HandyCache\Extensions\Filtr_IP.lua
29.09.11 15:29:22,905 # 6581/6971 >>> URL: http://www.sitekiosk.ru/
DeniedDo:
GET http://www.sitekiosk.ru/ HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51
Host: www.sitekiosk.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=a9311082c57970ec78c327e10ccb1af1; BITRIX_SM_GUEST_ID=90100; BITRIX_SM_LAST_VISIT=29.09.2011+03%3A03%3A08; BITRIX_SM_SALE_UID=130785
Pragma: no-cache
Cache-Control: no-cache
Connection: Keep-Alive
29.09.11 15:29:22,936 # 6581 <<< URL: http://www.sitekiosk.ru/
HTTP/1.1 403 Forbidden (HC)
Server: HandyCache/1.00 RC3 (1.0.0.193)
Content-Type: text/html
Connection: Keep-alive
Content-Length: 169
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #40 : 29 сентября 2011, 11:13:26 »

Обновите НС, возьмите отсюда http://handycache.ru/component/option,com_remository/Itemid,2/func,fileinfo/id,43/
Закройте НС и распакуйте архив в папку НС.
Сообщить модератору   Записан
goros
Новичок
*

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

Сообщений: 5


« Ответ #41 : 29 сентября 2011, 11:54:00 »

Обновите НС, возьмите отсюда http://handycache.ru/component/option,com_remository/Itemid,2/func,fileinfo/id,43/
Закройте НС и распакуйте архив в папку НС.
Всё заработало, спасибо.
Сообщить модератору   Записан
studio54
Новичок
*

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

Сообщений: 6


« Ответ #42 : 22 января 2013, 11:20:06 »

добрый день. возникла такая необходимость, одним пользователям открыть доступ к сайту, другим - закрыть.. вопрос - как это сделать?)
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #43 : 22 января 2013, 17:28:08 »

Только средствами расширений, например так

Код:
--[[ <HCExtension>
@name         Deny_Host_For_User
@event        RequestHeaderReceived/Request

</HCExtension> ]]

function Request()

  local un = hc.user_name 
  if not(un=='local' or un=='admin' or un=='marketing') then
    if re.find(hc.url, [[\A(:?http|https|ftp)://(:?.*\.)?(:?vk.com|odnoklassniki.ru)]]) then
      hc.monitor_string = hc.monitor_string..'Deny_Host_For_User '
      hc.action = 'stop'
    end
  end

end
« Последнее редактирование: 22 января 2013, 18:46:42 от Anymore » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #44 : 22 января 2013, 19:29:25 »

Если стоит тестовая версия СМ, то можно любому пользователю назначить любые подписки (т.е. правила блокировки).
Сообщить модератору   Записан
studio54
Новичок
*

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

Сообщений: 6


« Ответ #45 : 23 января 2013, 12:24:12 »

СМ -это?? и как там что назначать Непонимаю
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #46 : 23 января 2013, 18:11:17 »

Код:
un = hc.user_name
if not(un=='local' or un=='admin' or un=='marketing') then
  -- do something
end
Anymore, в Луа есть специальная идиома чтобы не писать такие списки внутри условия:
Код:
privileged_user = {
  local_ = true,
  admin = true,
  marketing = true,
}

if not privileged_user[hc.user_name] then
  -- do something
end
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #47 : 23 января 2013, 18:38:35 »

Anymore, в Луа есть специальная идиома чтобы не писать такие списки внутри условия...
да уж... а как сделать пониженный приоритет, например, для запросов SOCKS5?
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #48 : 23 января 2013, 18:53:09 »

У меня такой задачи не возникало, но кажется друг из Чехии уже задавал подобный вопрос. Нужен rescheduling запросов как я понимаю.
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #49 : 23 января 2013, 19:11:30 »

rescheduling, это когда заранее известна ширина канала, это HyperPool или BSB может сделать. Другое дело когда ширина неизвестна.
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #50 : 23 января 2013, 19:37:34 »

Я не о стороннем софте толкую, а о том чтобы в расширении завести несколько очередей по приоритетам с запросами и отрабатывать их в нужном порядке асинхронно. Чтобы узнать возможно ли это в принципе сделать, надо попытаться, но мне этим заниматься не хочется. Слишком уж навороченно.
« Последнее редактирование: 23 января 2013, 19:46:56 от mirny » Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #51 : 24 января 2013, 21:58:09 »

СМ -это?? и как там что назначать Непонимаю

Content Master v. 1.XX
, сейчас он в стадии тестирования и там не всё гладко, но вы всё-же можете попробовать его.

Anymore, в Луа есть специальная идиома чтобы не писать такие списки внутри условия
Вы можете дать ссылку на нормальный мануал по луа?
Сообщить модератору   Записан
mirny
Пользователь
**

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

Сообщений: 84


« Ответ #52 : 25 января 2013, 00:09:27 »

Вы можете дать ссылку на нормальный мануал по луа?
Вот нормальный мануал — http://rghost.net/43287986
Только по одним мануалам идиоматичный код писать не шибко выучишься. Тут больше помогает чтение кода, написанного грамотными людьми.
Сообщить модератору   Записан
studio54
Новичок
*

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

Сообщений: 6


« Ответ #53 : 29 января 2013, 11:38:21 »

добрый день, я уже поднимал подобный вопрос.. если честно ничего не понял.. в данный момент требуется группе компьютеров отключить доступ ко всем сайтам кроме 1го.. (но не всем компам) только определенной группе.. как это сделать ?? Help me! Help me! Help me!
Сообщить модератору   Записан
Anymore
Beta tester
*****

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

Сообщений: 339


« Ответ #54 : 29 января 2013, 15:32:22 »

Вы умеете добавлять расширения на языке LUA?
Какой сайт разрешён всем?
Обозначьте имена пользователей которым разрешено всё.
Сообщить модератору   Записан
sunserg10
Beta tester
*****

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

Сообщений: 322


« Ответ #55 : 08 мая 2013, 16:59:11 »

Данное расширение блокирует указанные сайты для всех пользователей.
Нужно, чтобы блокировка срабатывала только для определенных пользователей.
Где ошибка?
Код:
--[[ <HCExtension>
@name          Ban Users by URL (Games)
@event         RequestHeaderReceived/Request
</HCExtension> ]]

function Request()
  local exc= re.match(hc.url, 'odnokl|shadowland')
  local exc1= re.match(hc.user_name, 'Work-(?:5|50|51)$|asz')
  if exc1 and exc then
    hc.action = 'stop'
  end
end
Сообщить модератору   Записан
Balzebu
Новичок
*

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

Сообщений: 2


« Ответ #56 : 15 мая 2015, 13:18:59 »

Добрый день, подскажите почему не срабатывает расширение. Версия программы 571
Функция в файле расширения -
function allow()
   if hc.user_name == 'user1' then
      hc.action = 'stop-'    -- Мягкий запрет загрузки всего, кроме разрешенного в Белом списке
   elseif hc.user_name == 'User' then
      hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
      hc.monitor_string = hc.monitor_string..'Б.БЧ '
   end
end

На против расширения стоит галочка Разрешить. Но в логах почему то нет сообщения чтобы оно загружалось. А если я к примеру ставлю галочку рядом с другим расширением например - Cache cleaner, то в логах отображается его загрузка.

Что я делаю не так?   Файл расширения прикрепил к сообщению.


* zapret1.lua (0.43 Кб - загружено 30 раз.)
Сообщить модератору   Записан
YuS
Ветеран
*****

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

Сообщений: 701


crazy


« Ответ #57 : 15 мая 2015, 20:21:44 »

Добрый день, подскажите почему не срабатывает расширение.
В чем проявляется несрабатывание?

На против расширения стоит галочка Разрешить. Но в логах почему то нет сообщения чтобы оно загружалось. А если я к примеру ставлю галочку рядом с другим расширением например - Cache cleaner, то в логах отображается его загрузка.

Что я делаю не так?   Файл расширения прикрепил к сообщению.
Что именно говорит о загрузке Cache cleaner? В самом расширении есть функция инициализации и в ней присутствует такая строка:
hc.put_to_log('function init is called')

- это отображается в логе?

В общем, Ваше расширение работает и срабатывает оно в момент RequestHeaderReceived, при условии, что пользователь либо "user1", либо "User"...
А ещё проще - покажите лог.
Сообщить модератору   Записан
Balzebu
Новичок
*

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

Сообщений: 2


« Ответ #58 : 15 мая 2015, 22:08:38 »

Да, вы правы. В логах у меня отображается имя пользователя local вместо User, поменяв в расширении имя на local всё заработало для этого пользователя.

Данное имя связано с полем Доступ в настройке программы. Но на одном компьютере 2 пользователя. Я так понял, что программа не учитывает имена пользователя системы виндоус, а использует свои имена в меню Доступ, которые могут отличаться благодаря ip адресу.
Как быть когда несколько пользователей на одном компе? В моём случае это User и user1.
Сообщить модератору   Записан
YuS
Ветеран
*****

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

Сообщений: 701


crazy


« Ответ #59 : 16 мая 2015, 05:32:06 »

Как быть когда несколько пользователей на одном компе? В моём случае это User и user1.
http://handycache.ru/component/option,com_smf/Itemid,10/topic,95.msg11269/#msg11269
http://handycache.ru/component/option,com_smf/Itemid,10/topic,95.msg11346/#msg11346
Сообщить модератору   Записан
zoya
Новичок
*

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

Сообщений: 1


« Ответ #60 : 06 августа 2015, 07:42:58 »

Ситуация такая:
черный и белый список настроен для всех пользователей. нужно сделать так, чтобы секретарь со своего рабочего места мог открыть только один сайт. Поскольку я вообще никак с программой HC и вообще программированием, ОЧЕНЬ ПРОШУ поэтапно мне все разъяснить, буду очень благодарна.
Пока я сделала только так, набрала в блокноте и экспортировала в расширения:

Не получилось вставить код, он в приложении

* LUA.txt (0.55 Кб - загружено 39 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #61 : 07 августа 2015, 12:19:29 »

Вот примерный текст расширения, решающего Вашу задачу. Этот текст сохраните в файл с расширением lua, добавьте этот файл в список расширений. Поставьте галку в строке расширения и галку, разрешающую работу всех расширений.
В расширении вместо buh впишите имя Вашего пользователя. Это расширение будет пускать пользователя только на сайт buh.ru. Впишите в расширение нужный сайт. Часто элементы сайта хранятся на нескольких серверах, возможно надо будет разрешить доступ сразу к нескольким серверам. Тогда впишите их по шаблону
[[server1\.ru|server2\.ru|server3\.ru]]
Код:
--[[ <HCExtension>
@name          Разрешить один сайт бухгалтеру
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()
  if hc.user_name=='buh' then
     if not re.find(hc.url, [[buh\.ru]]) then
       hc.action = 'stop'
     end
  end
end
Сообщить модератору   Записан
Zelen
Пользователь
**

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

Сообщений: 82


pew pew


« Ответ #62 : 25 февраля 2016, 13:30:20 »

Вот примерный текст расширения, решающего Вашу задачу. Этот текст сохраните в файл с расширением lua, добавьте этот файл в список расширений. Поставьте галку в строке расширения и галку, разрешающую работу всех расширений.
В расширении вместо buh впишите имя Вашего пользователя. Это расширение будет пускать пользователя только на сайт buh.ru. Впишите в расширение нужный сайт. Часто элементы сайта хранятся на нескольких серверах, возможно надо будет разрешить доступ сразу к нескольким серверам. Тогда впишите их по шаблону
[[server1\.ru|server2\.ru|server3\.ru]]
Код:
--[[ <HCExtension>
@name          Разрешить один сайт бухгалтеру
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()
  if hc.user_name=='buh' then
     if not re.find(hc.url, [[buh\.ru]]) then
       hc.action = 'stop'
     end
  end
end

Здравствуйте, а как сделать в обратную сторону из этого рассширения? чтобы запрещал определенные сайты и онлайн аудио/видео просмотр?
Сообщить модератору   Записан

всё будет хорошо =)
YuS
Ветеран
*****

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

Сообщений: 701


crazy


« Ответ #63 : 26 февраля 2016, 15:07:34 »

Здравствуйте, а как сделать в обратную сторону из этого рассширения?
Обратите внимание на вот эту часть:
Код:
...
if not re.find(hc.url, [[buh\.ru]]) then
       hc.action = 'stop'
     end
...
Это условный блок,который выполняет проверки по url через регэксп.
Т.е. можно сделать так:

Код:
...
if re.find(hc.url, [[(buh\.ru|site\.ru|определенные.сайты\.com)]]) then
       hc.action = 'stop'
     end
...
Сообщить модератору   Записан
Zelen
Пользователь
**

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

Сообщений: 82


pew pew


« Ответ #64 : 27 февраля 2016, 18:19:24 »

Обратите внимание на вот эту часть:

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

Код:
--[[ <HCExtension>
@name          eA_OnlyFromCache_media_by_type (OFC-media)
@author        mai62
@description   Загружать медиа-файлы только из кэша
@exception     \.swf($|\?)
@event         AnswerHeaderReceived/Answer
</HCExtension> ]]


function GetContentType(s)
  _,_,x = string.find(s, '[cC]ontent%-[tT]ype: *([^;\r\n]+)')
  if x~=nil then x = string.lower(x) end
  return x
end

function GetContentLength(s)
  _,_,x = string.find(s, '[cC]ontent%-[lL]ength: *(%d+)')
  if x==nil then return -1 else return tonumber(x) end
end


function Answer()

 -- Только для GET-запросов
  if hc.method == 'GET' then

  -- забираем тип файла из заголовка 'Content-Type'
  type = GetContentType(hc.answer_header)
  if type~=nil then
    local media= nil
    media = string.find(type,'video',1,true)
    if media==nil then media = string.find(type,'audio',1,true) end

    -- если в поле заголовка 'Content-Type' есть слово 'video' или 'audio'
    -- и файла нет в кэше
    if media~=nil and hc.cache_file_size<0 then
    -- то останавливаем загрузку
      hc.action = 'stop-'
      hc.monitor_string = hc.monitor_string..'OFC-media '
    end
  end
  end

end  -- Конец функции Answer
Сообщить модератору   Записан

всё будет хорошо =)
Страниц: 1 2 3 4 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: