Path: blob/main/xml/ru/docs/http/ngx_http_referer_module.xml
1 views
<?xml version="1.0"?>12<!--3Copyright (C) Igor Sysoev4Copyright (C) Nginx, Inc.5-->67<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">89<module name="Модуль ngx_http_referer_module"10link="/ru/docs/http/ngx_http_referer_module.html"11lang="ru"12rev="2">1314<section id="summary">1516<para>17Модуль <literal>ngx_http_referer_module</literal> позволяет блокировать доступ18к сайту для запросов с неверными значениями поля <header>Referer</header> в19заголовке.20Следует иметь в виду, что подделать запрос с нужным значением поля21<header>Referer</header> не составляет большого труда, поэтому цель22использования данного модуля заключается не в стопроцентном блокировании23подобных запросов, а в блокировании массового потока запросов, сделанных24обычными браузерами.25Нужно также учитывать, что обычные браузеры могут не передавать поле26<header>Referer</header> даже для верных запросов.27</para>2829</section>303132<section id="example" name="Пример конфигурации">3334<para>35<example>36valid_referers none blocked server_names37*.example.com example.* www.example.org/galleries/38~\.google\.;3940if ($invalid_referer) {41return 403;42}43</example>44</para>4546</section>474849<section id="directives" name="Директивы">5051<directive name="referer_hash_bucket_size">52<syntax><value>размер</value></syntax>53<default>64</default>54<context>server</context>55<context>location</context>56<appeared-in>1.0.5</appeared-in>5758<para>59Задаёт размер корзины хэш-таблиц со значениями <header>Referer</header>.60Подробнее настройка хэш-таблиц обсуждается в отдельном61<link doc="../hash.xml">документе</link>.62</para>6364</directive>656667<directive name="referer_hash_max_size">68<syntax><value>размер</value></syntax>69<default>2048</default>70<context>server</context>71<context>location</context>72<appeared-in>1.0.5</appeared-in>7374<para>75Задаёт максимальный <value>размер</value> хэш-таблиц со значениями76<header>Referer</header>.77Подробнее настройка хэш-таблиц обсуждается в отдельном78<link doc="../hash.xml">документе</link>.79</para>8081</directive>828384<directive name="valid_referers">85<syntax>86<literal>none</literal> |87<literal>blocked</literal> |88<literal>server_names</literal> |89<value>строка</value>90...</syntax>91<default/>92<context>server</context>93<context>location</context>9495<para>96Задаёт значения поля <header>Referer</header> заголовка запроса, при97которых встроенная переменная <var>$invalid_referer</var> будет иметь98пустую строку в качестве значения.99В противном случае значение переменной равно “<literal>1</literal>”.100Поиск совпадения производится без учёта регистра символов.101</para>102103<para>104Параметры могут быть следующие:105<list type="tag">106107<tag-name><literal>none</literal></tag-name>108<tag-desc>109поле <header>Referer</header> в заголовке запроса отсутствует;110</tag-desc>111112<tag-name><literal>blocked</literal></tag-name>113<tag-desc>114поле <header>Referer</header> в заголовке запроса присутствует,115но его значение удалено межсетевым экраном (firewall) или прокси-сервером;116к таким значениям относятся строки, не начинающиеся на117“<literal>http://</literal>” или “<literal>https://</literal>”;118</tag-desc>119120<tag-name><literal>server_names</literal></tag-name>121<tag-desc>122в поле <header>Referer</header> заголовка запроса указано одно123из имён сервера;124</tag-desc>125126<tag-name>произвольная строка</tag-name>127<tag-desc>128задаёт имя сервера и необязательное начало URI.129В начале или конце имени сервера может быть “<literal>*</literal>”.130При проверке порт сервера в поле <header>Referer</header> игнорируется;131</tag-desc>132133<tag-name>регулярное выражение</tag-name>134<tag-desc>135в начале должен быть символ “<literal>~</literal>”.136Необходимо учитывать, что на совпадение с выражением будет проверяться137текст, начинающийся после “<literal>http://</literal>”138или “<literal>https://</literal>”.139</tag-desc>140141</list>142</para>143144<para>145Пример:146<example>147valid_referers none blocked server_names148*.example.com example.* www.example.org/galleries/149~\.google\.;150</example>151</para>152153</directive>154155</section>156157158<section id="variables" name="Встроенные переменные">159160<para>161<list type="tag">162163<tag-name id="var_invalid_referer"><var>$invalid_referer</var></tag-name>164<tag-desc>165Пустая строка, если значение поля <header>Referer</header> заголовка запроса166считается167<link id="valid_referers">правильным</link>, иначе “<literal>1</literal>”.168</tag-desc>169170</list>171</para>172173</section>174175</module>176177178