Задать вопрос

Можно ли использовать регулярки для проверки $http_referer?

Сыпется небольшой флуд на сервер, в рефере всяка срань вида «5asdasd3fdas3.net», «4asdfas334.name» и тд. Можно ли составить регулярку для этого случая? То есть


If ($http_referer содержит больше одной цифры) {

return 444;

}
  • Вопрос задан
  • 4150 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
oowl
@oowl
Регулярку использовать можно для любой переменной в if. Если вам нужна сама регулярка для условия «содержит больше одной цифры», то она выглядит как-то так:
if ($http_referer ~ \d.*\d) {
  return 444;
}
Ответ написан
@egorinsk
Лучше сохранять IP, откуда приходят странные запросы, и банить их.
Ответ написан
Комментировать
VBart
@VBart
Вместо if ($http_referer, лучше использовать модуль nginx.org/ru/docs/http/ngx_http_referer_module.html
он тоже позволяет регулярные выражения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы