Есть несколько вопросов, вполне обсуждаемых.
В чём смысл файлов url? Ведь вполне можно функционал этих файлов поместить в pcre.
Пример:
очень много всякого amateure.
Я бы поместил подобную строку amateure.*(pussy|teens|wife|girls).
Строки с girls там нет, ok. Но она ведь может быть? и 99% что этот сайт будет с порно контентом.
Идём дальше.
можно добавлять следующим образом:
amateure.*(ass|babe|pussy|teens|wife|girls|connection).*
и так далее. Это ОЧЕНЬ сократит список.
И еще мысли по списку запретов.
Просто банить слова sex, teen и xxx, с моей точки зрения, неверно. Это могут быть части других слов или вполне нормальных названий. А подобные ложноположительные срабатывания и запреты раздражают пользователей и, как следствие, техническую службу организации.
Очень огорчило наличие в черном списке простого имени Светлана. Убрал, разумеется.
Всё поправляемо, согласен. Очень хотелось бы увидеть мнения своих коллег и уважаемого автора.
url vs pcre?
url vs pcre?
Alexey
Смысл urls в их большой скорости работы и точности попадания.
В них обязательно должен быть домен второго уровня, по этим доменам строится бинарное дерево, что позволяет значительно ускорить поиск.
А регулярные выражения, это как небольшие программы.
В качестве исходных данных им передается url, а в ответ получаем "да" или "нет"
Иначе говоря для поиска на соответствие регулярным выражением надо перебрать высь наш список правил, что долго.
Например, если у нас список из 1000 правил, то для urls надо сделать ~11 проверок, а для pcre 1000 проверок.
Кроме того, проверки urls происходят быстрее чем проверки pcre.
Конечно можно составлять длинные правила pcre типа: amateure.*(ass|babe|pussy|teens|wife|girls|connection).*
но чем сложнее будет правило pcre, тем медленнее оно будет работать.
И опять же, регулярные выражения вызывают ложные сработки. Можно усложнять регулярные выражения, для уменьшения ложников, но все равно где нить да выплывет.
Пример: заблокируйте файлы .mpg и попробуйте зайти на www.mpg.ru
По этому, я считаю применение регулярных выражений вынужденной мерой, которой надо пользоваться только в случае крайней необходимости.
Хотя Вам конечно никто не мешает прописывать какие угодно правила. Вопрос лишь в скорости и точности работы.
В них обязательно должен быть домен второго уровня, по этим доменам строится бинарное дерево, что позволяет значительно ускорить поиск.
А регулярные выражения, это как небольшие программы.
В качестве исходных данных им передается url, а в ответ получаем "да" или "нет"
Иначе говоря для поиска на соответствие регулярным выражением надо перебрать высь наш список правил, что долго.
Например, если у нас список из 1000 правил, то для urls надо сделать ~11 проверок, а для pcre 1000 проверок.
Кроме того, проверки urls происходят быстрее чем проверки pcre.
Конечно можно составлять длинные правила pcre типа: amateure.*(ass|babe|pussy|teens|wife|girls|connection).*
но чем сложнее будет правило pcre, тем медленнее оно будет работать.
И опять же, регулярные выражения вызывают ложные сработки. Можно усложнять регулярные выражения, для уменьшения ложников, но все равно где нить да выплывет.
Пример: заблокируйте файлы .mpg и попробуйте зайти на www.mpg.ru
По этому, я считаю применение регулярных выражений вынужденной мерой, которой надо пользоваться только в случае крайней необходимости.
Хотя Вам конечно никто не мешает прописывать какие угодно правила. Вопрос лишь в скорости и точности работы.
Я так и предполагал, что вопрос в скорости. Но порой есть сайты совершенно нормальные, просто хостинг, возможно бесплатный.
Очень много таких попадает в черный список. Это печально.
Поэтому мучаюсь, но пишу regex.
Особенно касается банеров. И их сетей. Я не против чтобы люди посещали рекламируемые сайты. И не против чтобы люди посещали сами сайты банерных систем: какой здесь криминал?
Но их реклама - лишний трафик и скорость канала.
Касательно предложенной блокировки файлов. В предложенном примере из дистрибутива именно так и происходит.
Я использую следующий способ:
\.exe$
\.zip$
\.arj$
\.rar$
\.iso$
\.pif$
\.lha$
\.uc2$
\.ace$
\.zoo$
\.tgz$
\.tar$
\.bz2$
\.tar\.gz$
\.scr$
К слову, хотелось бы узнать как автор и коллеги относятся к к этому способу.
Очень много таких попадает в черный список. Это печально.
Поэтому мучаюсь, но пишу regex.
Особенно касается банеров. И их сетей. Я не против чтобы люди посещали рекламируемые сайты. И не против чтобы люди посещали сами сайты банерных систем: какой здесь криминал?
Но их реклама - лишний трафик и скорость канала.
Касательно предложенной блокировки файлов. В предложенном примере из дистрибутива именно так и происходит.
Я использую следующий способ:
\.exe$
\.zip$
\.arj$
\.rar$
\.iso$
\.pif$
\.lha$
\.uc2$
\.ace$
\.zoo$
\.tgz$
\.tar$
\.bz2$
\.tar\.gz$
\.scr$
К слову, хотелось бы узнать как автор и коллеги относятся к к этому способу.
Alexey
Вы блокируете урл, если он заканчивается на .exe
Это очень просто обойти, добавив дополнительный параметр:
http://domen/dir/file.exe?lala
А чаще всего и добавлять ничего не придется, так как закачка уже идет с каким-нибудь file.exe?nocahe=234324
я сейчас использую конструкцию вида: \..+\/.+\.mpg([\W_]|$)
хотя вряд ли она идеальна.
Это очень просто обойти, добавив дополнительный параметр:
http://domen/dir/file.exe?lala
А чаще всего и добавлять ничего не придется, так как закачка уже идет с каким-нибудь file.exe?nocahe=234324
я сейчас использую конструкцию вида: \..+\/.+\.mpg([\W_]|$)
хотя вряд ли она идеальна.
Kotovsky писал(а): Касательно предложенной блокировки файлов. В предложенном примере из дистрибутива именно так и происходит.
Я использую следующий способ:
\.exe$
\.zip$
...
К слову, хотелось бы узнать как автор и коллеги относятся к к этому способу.