Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/xml/ru/docs/http/ngx_http_referer_module.xml
1 views
1
<?xml version="1.0"?>
2
3
<!--
4
Copyright (C) Igor Sysoev
5
Copyright (C) Nginx, Inc.
6
-->
7
8
<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
9
10
<module name="Модуль ngx_http_referer_module"
11
link="/ru/docs/http/ngx_http_referer_module.html"
12
lang="ru"
13
rev="2">
14
15
<section id="summary">
16
17
<para>
18
Модуль <literal>ngx_http_referer_module</literal> позволяет блокировать доступ
19
к сайту для запросов с неверными значениями поля <header>Referer</header> в
20
заголовке.
21
Следует иметь в виду, что подделать запрос с нужным значением поля
22
<header>Referer</header> не составляет большого труда, поэтому цель
23
использования данного модуля заключается не в стопроцентном блокировании
24
подобных запросов, а в блокировании массового потока запросов, сделанных
25
обычными браузерами.
26
Нужно также учитывать, что обычные браузеры могут не передавать поле
27
<header>Referer</header> даже для верных запросов.
28
</para>
29
30
</section>
31
32
33
<section id="example" name="Пример конфигурации">
34
35
<para>
36
<example>
37
valid_referers none blocked server_names
38
*.example.com example.* www.example.org/galleries/
39
~\.google\.;
40
41
if ($invalid_referer) {
42
return 403;
43
}
44
</example>
45
</para>
46
47
</section>
48
49
50
<section id="directives" name="Директивы">
51
52
<directive name="referer_hash_bucket_size">
53
<syntax><value>размер</value></syntax>
54
<default>64</default>
55
<context>server</context>
56
<context>location</context>
57
<appeared-in>1.0.5</appeared-in>
58
59
<para>
60
Задаёт размер корзины хэш-таблиц со значениями <header>Referer</header>.
61
Подробнее настройка хэш-таблиц обсуждается в отдельном
62
<link doc="../hash.xml">документе</link>.
63
</para>
64
65
</directive>
66
67
68
<directive name="referer_hash_max_size">
69
<syntax><value>размер</value></syntax>
70
<default>2048</default>
71
<context>server</context>
72
<context>location</context>
73
<appeared-in>1.0.5</appeared-in>
74
75
<para>
76
Задаёт максимальный <value>размер</value> хэш-таблиц со значениями
77
<header>Referer</header>.
78
Подробнее настройка хэш-таблиц обсуждается в отдельном
79
<link doc="../hash.xml">документе</link>.
80
</para>
81
82
</directive>
83
84
85
<directive name="valid_referers">
86
<syntax>
87
<literal>none</literal> |
88
<literal>blocked</literal> |
89
<literal>server_names</literal> |
90
<value>строка</value>
91
...</syntax>
92
<default/>
93
<context>server</context>
94
<context>location</context>
95
96
<para>
97
Задаёт значения поля <header>Referer</header> заголовка запроса, при
98
которых встроенная переменная <var>$invalid_referer</var> будет иметь
99
пустую строку в качестве значения.
100
В противном случае значение переменной равно “<literal>1</literal>”.
101
Поиск совпадения производится без учёта регистра символов.
102
</para>
103
104
<para>
105
Параметры могут быть следующие:
106
<list type="tag">
107
108
<tag-name><literal>none</literal></tag-name>
109
<tag-desc>
110
поле <header>Referer</header> в заголовке запроса отсутствует;
111
</tag-desc>
112
113
<tag-name><literal>blocked</literal></tag-name>
114
<tag-desc>
115
поле <header>Referer</header> в заголовке запроса присутствует,
116
но его значение удалено межсетевым экраном (firewall) или прокси-сервером;
117
к таким значениям относятся строки, не начинающиеся на
118
<literal>http://</literal>” или “<literal>https://</literal>”;
119
</tag-desc>
120
121
<tag-name><literal>server_names</literal></tag-name>
122
<tag-desc>
123
в поле <header>Referer</header> заголовка запроса указано одно
124
из имён сервера;
125
</tag-desc>
126
127
<tag-name>произвольная строка</tag-name>
128
<tag-desc>
129
задаёт имя сервера и необязательное начало URI.
130
В начале или конце имени сервера может быть “<literal>*</literal>”.
131
При проверке порт сервера в поле <header>Referer</header> игнорируется;
132
</tag-desc>
133
134
<tag-name>регулярное выражение</tag-name>
135
<tag-desc>
136
в начале должен быть символ “<literal>~</literal>”.
137
Необходимо учитывать, что на совпадение с выражением будет проверяться
138
текст, начинающийся после “<literal>http://</literal>
139
или “<literal>https://</literal>”.
140
</tag-desc>
141
142
</list>
143
</para>
144
145
<para>
146
Пример:
147
<example>
148
valid_referers none blocked server_names
149
*.example.com example.* www.example.org/galleries/
150
~\.google\.;
151
</example>
152
</para>
153
154
</directive>
155
156
</section>
157
158
159
<section id="variables" name="Встроенные переменные">
160
161
<para>
162
<list type="tag">
163
164
<tag-name id="var_invalid_referer"><var>$invalid_referer</var></tag-name>
165
<tag-desc>
166
Пустая строка, если значение поля <header>Referer</header> заголовка запроса
167
считается
168
<link id="valid_referers">правильным</link>, иначе “<literal>1</literal>”.
169
</tag-desc>
170
171
</list>
172
</para>
173
174
</section>
175
176
</module>
177
178