Рейтинг:1

Исключить встраивание iframe в документ Google из правила перезаписи nginx?

флаг ua

Я надеюсь, что кто-то может помочь мне здесь, так как у меня очень ограниченные знания о вещах, связанных с сервером.

У меня есть сайт WordPress, на котором я хочу ограничить доступ к каталогу /wp-content/uploads/ только зарегистрированным пользователям. Для этого я использовал обходной путь, указанный в следующей ссылке на сервере nginx:

https://wordpress.stackexchange.com/questions/37144/how-to-protect-uploads-if-user-is-not-login-in

И это решение отлично работает. Однако есть проблема.

У меня есть несколько pdf-файлов, встроенных через google doc на определенные страницы. Встраивание документа Google использует для загрузки PDF-файлов следующим образом:

<iframe src="//docs.google.com/viewer?url=https://link-to-file.pdf&amp;hl=en_US&amp;embedded=true" class="" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>

Мое правило nginx выглядит следующим образом:

расположение ~* /(?:загрузки)/* {
   переписать /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}

Как я могу исключить выше iframe или //docs.google.com URL из этого правила?

Любая помощь будет высоко оценен.

Спасибо

Бакар

флаг kz
Исключая средство просмотра документов Google, вы, по сути, делаете PDF-файлы общедоступными...так почему бы просто не сделать PDF-файлы общедоступными? В качестве альтернативы, соответствуют ли IP-адреса, которые Google запрашивает эти документы?
Рейтинг:0
флаг pl
JFK

Вы можете использовать рефереры (http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers)

valid_referers нет заблокированных server_names docs.google.com;

Затем вы можете просто использовать переменную $invalid_referer в своем блоке местоположения.

если ($invalid_referer) {
    переписать /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}
bakar avatar
флаг ua
Извините, но это не работает. Похоже, он даже не подтверждает прежнее правило nginx.
флаг us
Возможно, средство просмотра doc.google.com не отправляет правильный HTTP-заголовок реферера при запросе файла для отображения. Если это так, вам нужно найти другую программу просмотра PDF.
JFK avatar
флаг pl
JFK
Добавьте $http_refferer в свой журнал (https://docs.nginx.com/nginx/admin-guide/monitoring/logging/) и проверьте, что, если что, отправляет вам Google.
bakar avatar
флаг ua
@TeroKilkanen, спасибо за комментарий. Вы правы, реферера в логе доступа нет. Наконец, я решил использовать другой плагин для просмотра PDF.
bakar avatar
флаг ua
@JFK, спасибо за комментарий. Похоже, Google не отправляет реферера, и это причина, по которой вышеприведенное правило не сработало. Спасибо за помощь кстати.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.