view xml/ru/docs/http/ngx_http_referer_module.xml @ 617:368a449e85b8

Expanded documentation of what various parameters of the "listen" directive related to socket options do. While here, documented the fact that accept filters also work on NetBSD.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 02 Aug 2012 13:24:07 +0000
parents 764fbac1b8b4
children 77a3314c74a7
line wrap: on
line source

<?xml version="1.0"?>

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

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

<module name="Модуль ngx_http_referer_module"
        link="/ru/docs/http/ngx_http_referer_module.html"
        lang="ru"
        rev="1">

<section id="summary">

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

</section>


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

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

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

</section>


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

<directive name="referer_hash_bucket_size">
<syntax><value>размер</value></syntax>
<default>64</default>
<context>server</context>
<context>location</context>
<appeared-in>1.0.5</appeared-in>

<para>
Задаёт размер корзины хэш-таблиц со значениями <header>Referer</header>.
Подробнее смотрите в документе по
<link doc="../hash.xml">настройке хэшей</link>.
</para>

</directive>


<directive name="referer_hash_max_size">
<syntax><value>размер</value></syntax>
<default>2048</default>
<context>server</context>
<context>location</context>
<appeared-in>1.0.5</appeared-in>

<para>
Задаёт максимальный <value>размер</value> хэш-таблиц со значениями
<header>Referer</header>.
Подробнее смотрите в документе по
<link doc="../hash.xml">настройке хэшей</link>.
</para>

</directive>


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

<para>
Задаёт значения поля <header>Referer</header> заголовка запроса, при
которых встроенная переменная <var>$invalid_referer</var> будет иметь
пустую строку в качестве значения.
В противном случае значение переменной равно “<literal>1</literal>”.
Поиск совпадения производится без учёта регистра символов.
</para>

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

<tag-name><literal>none</literal></tag-name>
<tag-desc>
поле <header>Referer</header> в заголовке запроса отсутствует;
</tag-desc>

<tag-name><literal>blocked</literal></tag-name>
<tag-desc>
поле <header>Referer</header> в заголовке запроса присутствует,
но его значение удалено межсетевым экраном (firewall) или прокси-сервером;
к таким значениям относятся строки, не начинающиеся на
“<literal>http://</literal>” или “<literal>https://</literal>”;
</tag-desc>

<tag-name><literal>server_names</literal></tag-name>
<tag-desc>
в поле <header>Referer</header> заголовка запроса указано одно
из имён сервера;
</tag-desc>

<tag-name>произвольная строка</tag-name>
<tag-desc>
задаёт имя сервера и необязательное начало URI.
В начале или конце имени сервера может быть “<literal>*</literal>”.
При проверке порт сервера в поле <header>Referer</header> игнорируется;
</tag-desc>

<tag-name>регулярное выражение</tag-name>
<tag-desc>
в начале должен быть символ “<literal>~</literal>”.
Необходимо учитывать, что на совпадение с выражением будет проверяться
текст, начинающийся после “<literal>http://</literal>”
или “<literal>https://</literal>”.
</tag-desc>

</list>
</para>

<para>
Пример:
<example>
valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;
</example>
</para>

</directive>

</section>

</module>