Можно ли в nginx блокировать доступ по определенному реферреру

zexis
На сайте с 09.08.2005
Offline
388
1109

Вот так можно запретить доступ к картинкам со всех сайтов кроме mysite.ru

valid_referers none blocked server_names *.mysite.ru;

if ($invalid_referer) {

return 403;

}

Но мне нужно сделать другое.

Мне нужно со всех реферреров доступ разрешить (и без реферрера разрешить), а запретить, только с определенных реферреров.

site1.ru

site2.ru

Можно ли это сделать в nginx ?

M
На сайте с 16.09.2009
Offline
278
#1

можно, конечно

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
zexis
На сайте с 09.08.2005
Offline
388
#2
myhand:
можно, конечно

Не подскажите как?

А то у меня не получается.

Andreyka
На сайте с 19.02.2005
Offline
822
#3

С помощью карты, переменной и гугла

Не стоит плодить сущности без необходимости
M
На сайте с 16.09.2009
Offline
278
#4

безникакихmap

# немного нелогично...

valid_referers example.com test.ru

# но будет работать:

if ($invalid_referer != 0) {

return 403;

}

zexis
На сайте с 09.08.2005
Offline
388
#5
myhand:
безникакихmap

# немного нелогично...
valid_referers example.com test.ru
# но будет работать:
if ($invalid_referer != 0) {
return 403;
}

Проверил. такой механизм не работает.

при таком коде вообще ни у кого доступа нет

Решение нашел. Оказалось простым. Вот оно.

if ($http_referer ~* "(site1.ru|site2.ru)") {

return 403;

}

M
На сайте с 16.09.2009
Offline
278
#6
zexis:
Проверил. такой механизм не работает.

уверены? ЧЯНТД?

идея состоит в том, что в valid_referers перечисляем _неправильные_

рефереры (скорее всего, здесь у вас что-то неверно),

после чего ловим в if соответствующий статус переменной.

zexis
На сайте с 09.08.2005
Offline
388
#7
myhand:
уверены? ЧЯНТД?

идея состоит в том, что в valid_referers перечисляем _неправильные_
рефереры (скорее всего, здесь у вас что-то неверно),
после чего ловим в if соответствующий статус переменной.

Эта идея мне понятна, но на практике она у меня не заработала.

А Вы ее пробовали и работает?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий