mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-24 02:55:40 +08:00
91 lines
4.8 KiB
HTML
91 lines
4.8 KiB
HTML
<h3>Плагин регулярных выражений совместимых с Perl (PCRE) для 3proxy</h3>
|
||
|
||
Фильтрующий плагин используется для создания правил поиска и замены
|
||
регулярных выражений в запросе, заголовков запроса и ответа и данных.
|
||
Добавляет поддержку 3х новых команд в файле конфигурации:
|
||
|
||
<pre>
|
||
pcre TYPE FILTER_ACTION REGEXP [ACE]
|
||
pcre_rewrite TYPE FILTER_ACTION REGEXP REWRITE_EXPRESSION [ACE]
|
||
pcre_extend FILTER_ACTION [ACE]
|
||
pcre_options OPTION1 [...]
|
||
</pre>
|
||
pcre - позволяет искать совпадения
|
||
<br>pcre_rewrite - дополнительно позволяет производить замену подстрок
|
||
<br>pcre_extend - расширяет ACL последней команды pcre или pcre_rewrite путем
|
||
добавления еще одной ACE (аналогично списку правил allow/deny).
|
||
<br>pcre_options - позволяет устанавливать опции поиска, доступны следующие опции:
|
||
PCRE_CASELESS,
|
||
PCRE_MULTILINE,
|
||
PCRE_DOTALL,
|
||
PCRE_EXTENDED,
|
||
PCRE_ANCHORED,
|
||
PCRE_DOLLAR_ENDONLY,
|
||
PCRE_EXTRA,
|
||
PCRE_NOTBOL,
|
||
PCRE_NOTEOL,
|
||
PCRE_UNGREEDY,
|
||
PCRE_NOTEMPTY,
|
||
PCRE_UTF8,
|
||
PCRE_NO_AUTO_CAPTURE,
|
||
PCRE_NO_UTF8_CHECK,
|
||
PCRE_AUTO_CALLOUT,
|
||
PCRE_PARTIAL,
|
||
PCRE_DFA_SHORTEST,
|
||
PCRE_DFA_RESTART,
|
||
PCRE_FIRSTLINE,
|
||
PCRE_DUPNAMES,
|
||
PCRE_NEWLINE_CR,
|
||
PCRE_NEWLINE_LF,
|
||
PCRE_NEWLINE_CRLF,
|
||
PCRE_NEWLINE_ANY,
|
||
PCRE_NEWLINE_ANYCRLF,
|
||
PCRE_BSR_ANYCRLF,
|
||
PCRE_BSR_UNICODE
|
||
|
||
|
||
<ul>
|
||
<li>TYPE - тип фильтруемых данных. Может содержать одно или
|
||
несколько (список через запятую) значений:
|
||
<ul>
|
||
<li>request - содержимое запроса клиента (например строка HTTP GET-запроса).
|
||
(в настоящий момент изменение запроса не приводит к изменению адреса запрашиваемого хоста)
|
||
<li>cliheader - содержимое заголовков запроса клиента, например заголовки HTTP
|
||
<li>srvheader - содержимое заголовков ответа сервера, например заголовки HTTP
|
||
<li>clidata - данные полученные от клиента, например данные POST-запроса
|
||
<li>srvdata - данные полученные от сервера, например содержимое HTML-страницы
|
||
</ul>
|
||
<li>FILTER_ACTION - действие при совпадении. Может принимать значение
|
||
<ul>allow - разрешить данный запрос без просмотра дальнейших правил
|
||
<li>deny - запретить данный запрос без просмотра дальнейших правил
|
||
<li>dunno - продолжить анализ правил (полезно для pcre_rewrite)
|
||
</ul>
|
||
<li>REGEXP - регулярное выражение в формате PCRE (perl). Используйте * если не
|
||
требуется проерка регулярного выражения.
|
||
<li>REWRITE_EXPRESSION - строка замены. Может содержать макроподстановки
|
||
(не тестировалось) $1, $2 и т.д. аналогично perl. $0 - полная найденная
|
||
подстрока. В строке замены можно использовать сочетания \r, \n для вставки
|
||
новых строк. Строка может быть пустой ("").
|
||
<li>ACE - Список контроля доступа (имя пользователя, IP источника, IP назначения, порт и т.д.),
|
||
полностью аналогичный ACE в командах allow, deny, bandlimin и т.п. Регулярное
|
||
выражение проверяется только при совпадении ACE с запросом. ВНИМАНИЕ:
|
||
использование регулярных выражений не требует авторизации и не заменяет ее.
|
||
Авторизацию необходимо конфигурировать отдельно.
|
||
</ul>
|
||
|
||
|
||
<h4>Пример:</h4>
|
||
<pre>
|
||
plugin PCREPlugin.dll pcre_plugin
|
||
pcre request deny "porn|sex" user1,user2,user3 192.168.0.0/16
|
||
pcre srvheader deny "Content-type: application"
|
||
pcre_rewrite clidata,srvdata dunno "porn|sex|pussy" "***" baduser
|
||
pcre_extend deny * 192.168.0.1/16
|
||
</pre>
|
||
|
||
<h4>Загрузить:</h4>
|
||
<ul>
|
||
<li>Плагин включен в дистрибутив 3proxy 0.6
|
||
<li>Пример конфигурации (by Dennis Garber): <A HREF="NoPornLitest.cfg.txt">NoPornLitest.cfg</A>
|
||
</ul>
|