Mercurial > hg > nginx-site
view xml/ru/docs/http/ngx_http_referer_module.xml @ 370:66414a4eb347
Revision.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 30 Jan 2012 07:31:58 +0000 |
parents | bb51d3e17dd0 |
children | 9913f1d51c07 |
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> Модуль <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.info/galleries/ ~\.google\.; if ($invalid_referer) { return 403; } </example> </para> </section> <section id="directives" name="Директивы"> <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> будет иметь значение 0. </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>”; </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>”. </tag-desc> </list> </para> <para> Пример: <example> valid_referers none blocked server_names *.example.com example.* www.example.info/galleries/ ~\.google\.; </example> </para> </directive> </section> </module>