view xml/ru/docs/http/ngx_http_referer_module.xml @ 76:4a4caa566120

Russian documentation import. Changes in module.dtd: <example> now allowed to contain <value> and <emphasis> elements (we need this to show important parts in examples), less strict checking of <directive> syntax (we don't want to fully document some directives, notably deprecated ones). Known issues: 1. <syntax> elements are preserved as is, they will require manual conversion (likely to some not-yet-existed format a la DocBook cmdsynopsis, as currently used one seems to be incomplete); 2. <value> no longer corresponds to replaceable content, and it's use in examples isn't correct; 3. <link doc="document#fragment"> doesn't work with current xslt, either should be supported or changed to <link doc="document" id="fragment">. The following files are intentionally omitted: maillists.xml (support.xml should be used instead), experimental.xml (obsolete), faq.xml (conflicts with existing one, needs discussion). Not yet linked to site.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 11 Oct 2011 12:57:50 +0000
parents
children 1d315ef37215
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">

<module name="Директивы модуля ngx_http_referer_module"
        link="/ru/docs/http/ngx_http_referer_module.html"
        lang="ru">

<section name="" id="summary">

<para>
Модуль ngx_http_referer_module позволяет блокировать доступ
к сайту с неверными значениями строки "Referer" в заголовке запроса.
Следует иметь в виду, что подделать запрос с нужной строкой "Referer"
не составляет большого труда, поэтому цель использования данного модуля
заключается не в стопроцентном блокировании подобных запросов,
а в блокировании массового потока запросов, сделанных обычными браузерами.
Нужно также учитывать, что обычные браузеры могут не передавать cтроку
"Referer" даже для верных запросов.
</para>

</section>


<section name="Пример конфигурации" id="example">

<para>
<example>
    valid_referers   none  blocked  server_names
                     *.example.com  www.example.info/galleries/
                     ~\.google\. ;

    if ($invalid_referer) {
        return   403;
    }
</example>
</para>

</section>


<section name="Директивы" id="directives">

<directive name="valid_referers">
<syntax>valid_referers
    [none|blocked|server_names|<value>строка</value>] ...</syntax>
<default>нет</default>
<context>server, location</context>

<para>
Директива задаёт значения строки "Referer" в заголовке запроса, при
которых встроенная переменная $invalid_referer будет иметь значение 0.
</para>

<para>
Параметры могут быть следующие:
<list type="bullet">

<listitem>
none — строка "Referer" в заголовке запроса отсутствует;
</listitem>

<listitem>
blocked — строка "Referer" в заголовке запроса присутствует,
но её значение удалено файрволлом или прокси-сервером; к таким строкам
относятся строки, неначинающиеся на "http://";
</listitem>

<listitem>
server_names — в строке "Referer" в заголовке запроса указано одно
из имён сервера;
</listitem>

<listitem>
произвольная строка — задаёт имя сервера и необязательное начало URI.
В начале или конце имени сервера может быть "*".
При проверке порт сервера в строке "Referer" игнорируется.
</listitem>

<listitem>
регулярное выражение — в начале должен быть символ "~".
Необходимо учитывать, что на совпадение с выражением будет проверяться
текст, начинающийся после "http://".
</listitem>

</list>
</para>

<para>
Пример использования:
<example>
    valid_referers   none  blocked  server_names
                     *.example.com  example.*  www.example.info/galleries/
                     ~\.google\. ;
</example>
</para>

</directive>

</section>

</module>