view xml/ru/docs/http/ngx_http_referer_module.xml @ 271:4c6d2c614d2c

Cleaned up XML tag mess: - all of <parameter> and <code>, and some of <dirname>, <value>, and <command> were replaced by <literal>; - the rest of <dirname> were replaced by links; - <argument> were replaced by <value>; - <value> is now rendered in HTML in italic; - <literal> and <path> can now contain <value>. Cleaned up terminology mess: - directives take "parameters".
author Ruslan Ermilov <ru@nginx.com>
date Fri, 23 Dec 2011 17:29:59 +0000
parents bfe3eff81d04
children 2305be197a84
line wrap: on
line source

<?xml version="1.0"?>

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

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

<section 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>
  <literal>none</literal> | 
  <literal>blocked</literal> |
  <literal>server_names</literal> |
  <value>строка</value>
  ...</syntax>
<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>