PCREPlugin.ru.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <h3>Плагин регулярных выражений совместимых с Perl (PCRE) для 3proxy</h3>
  2. Фильтрующий плагин используется для создания правил поиска и замены
  3. регулярных выражений в запросе, заголовков запроса и ответа и данных.
  4. Добавляет поддержку 3х новых команд в файле конфигурации:
  5. <pre>
  6. pcre TYPE FILTER_ACTION REGEXP [ACE]
  7. pcre_rewrite TYPE FILTER_ACTION REGEXP REWRITE_EXPRESSION [ACE]
  8. pcre_extend FILTER_ACTION [ACE]
  9. pcre_options OPTION1 [...]
  10. </pre>
  11. pcre - позволяет искать совпадения
  12. <br>pcre_rewrite - дополнительно позволяет производить замену подстрок
  13. <br>pcre_extend - расширяет ACL последней команды pcre или pcre_rewrite путем
  14. добавления еще одной ACE (аналогично списку правил allow/deny).
  15. <br>pcre_options - позволяет устанавливать опции поиска, доступны следующие опции:
  16. PCRE_CASELESS,
  17. PCRE_MULTILINE,
  18. PCRE_DOTALL,
  19. PCRE_EXTENDED,
  20. PCRE_ANCHORED,
  21. PCRE_DOLLAR_ENDONLY,
  22. PCRE_EXTRA,
  23. PCRE_NOTBOL,
  24. PCRE_NOTEOL,
  25. PCRE_UNGREEDY,
  26. PCRE_NOTEMPTY,
  27. PCRE_UTF8,
  28. PCRE_NO_AUTO_CAPTURE,
  29. PCRE_NO_UTF8_CHECK,
  30. PCRE_AUTO_CALLOUT,
  31. PCRE_PARTIAL,
  32. PCRE_DFA_SHORTEST,
  33. PCRE_DFA_RESTART,
  34. PCRE_FIRSTLINE,
  35. PCRE_DUPNAMES,
  36. PCRE_NEWLINE_CR,
  37. PCRE_NEWLINE_LF,
  38. PCRE_NEWLINE_CRLF,
  39. PCRE_NEWLINE_ANY,
  40. PCRE_NEWLINE_ANYCRLF,
  41. PCRE_BSR_ANYCRLF,
  42. PCRE_BSR_UNICODE
  43. <ul>
  44. <li>TYPE - тип фильтруемых данных. Может содержать одно или
  45. несколько (список через запятую) значений:
  46. <ul>
  47. <li>request - содержимое запроса клиента (например строка HTTP GET-запроса).
  48. (в настоящий момент изменение запроса не приводит к изменению адреса запрашиваемого хоста)
  49. <li>cliheader - содержимое заголовков запроса клиента, например заголовки HTTP
  50. <li>srvheader - содержимое заголовков ответа сервера, например заголовки HTTP
  51. <li>clidata - данные полученные от клиента, например данные POST-запроса
  52. <li>srvdata - данные полученные от сервера, например содержимое HTML-страницы
  53. </ul>
  54. <li>FILTER_ACTION - действие при совпадении. Может принимать значение
  55. <ul>allow - разрешить данный запрос без просмотра дальнейших правил
  56. <li>deny - запретить данный запрос без просмотра дальнейших правил
  57. <li>dunno - продолжить анализ правил (полезно для pcre_rewrite)
  58. </ul>
  59. <li>REGEXP - регулярное выражение в формате PCRE (perl). Используйте * если не
  60. требуется проерка регулярного выражения.
  61. <li>REWRITE_EXPRESSION - строка замены. Может содержать макроподстановки
  62. (не тестировалось) $1, $2 и т.д. аналогично perl. $0 - полная найденная
  63. подстрока. В строке замены можно использовать сочетания \r, \n для вставки
  64. новых строк. Строка может быть пустой ("").
  65. <li>ACE - Список контроля доступа (имя пользователя, IP источника, IP назначения, порт и т.д.),
  66. полностью аналогичный ACE в командах allow, deny, bandlimin и т.п. Регулярное
  67. выражение проверяется только при совпадении ACE с запросом. ВНИМАНИЕ:
  68. использование регулярных выражений не требует авторизации и не заменяет ее.
  69. Авторизацию необходимо конфигурировать отдельно.
  70. </ul>
  71. <h4>Пример:</h4>
  72. <pre>
  73. plugin PCREPlugin.dll pcre_plugin
  74. pcre request deny "porn|sex" user1,user2,user3 192.168.0.0/16
  75. pcre srvheader deny "Content-type: application"
  76. pcre_rewrite clidata,srvdata dunno "porn|sex|pussy" "***" baduser
  77. pcre_extend deny * 192.168.0.1/16
  78. </pre>
  79. <h4>Загрузить:</h4>
  80. <ul>
  81. <li>Плагин включен в дистрибутив 3proxy 0.6
  82. <li>Пример конфигурации (by Dennis Garber): <A HREF="NoPornLitest.cfg.txt">NoPornLitest.cfg</A>
  83. </ul>